Mark acting as Tim's proxy: the ftp section of the URL document

"Mark P. McCahill" <mpm@boombox.micro.umn.edu> Sun, 13 March 1994 21:26 UTC

Received: from ietf.nri.reston.va.us by IETF.CNRI.Reston.VA.US id aa17816; 13 Mar 94 16:26 EST
Received: from CNRI.RESTON.VA.US by IETF.CNRI.Reston.VA.US id aa17812; 13 Mar 94 16:26 EST
Received: from mocha.bunyip.com by CNRI.Reston.VA.US id aa27846; 13 Mar 94 16:25 EST
Received: by mocha.bunyip.com (5.65a/IDA-1.4.2b/CC-Guru-2b) id AA19402 on Sun, 13 Mar 94 13:09:19 -0500
Received: from hub2.tc.umn.edu by mocha.bunyip.com with SMTP (5.65a/IDA-1.4.2b/CC-Guru-2b) id AA19398 (mail destined for /usr/lib/sendmail -odq -oi -furi-request uri-out) on Sun, 13 Mar 94 13:07:51 -0500
Received: from boombox.micro.umn.edu by hub2.tc.umn.edu id SMTP-0012d835643019080; Sun, 13 Mar 94 12:06:59 -0600
Date: Sun, 13 Mar 1994 12:10:18 -0600
Message-Id: <9403131810.AA00856@boombox.micro.umn.edu>
Received: from dialup-2-174.gw.umn.edu by boombox.micro.umn.edu; Sun, 13 Mar 94 12:10:18 CST
Sender: ietf-archive-request@IETF.CNRI.Reston.VA.US
From: "Mark P. McCahill" <mpm@boombox.micro.umn.edu>
Reply-To: "Mark P. McCahill" <mpm@boombox.micro.umn.edu>
To: uri@bunyip.com
Subject: Mark acting as Tim's proxy: the ftp section of the URL document

Comments: 
  - How the information about to do transfers (binary, tenex, or ascii
    mode) is not covered in Tim's revision.

  - It would be good to be a bit more explicit about what I think is
    an implicit assumption made for differentiating between files and 
    directories in Tim's proposal. I think he is implying that if the 
    ftp path is specificed as /x/y/z you assume that there is a sequence
    of CWD followed by a RETR of file z, and if the path is /x/y/z/ the
    URL is pointing to a dorectory rather than a document.

    If this sort of syntax works for people, then the thing that needs to 
    be added is simply a tag to specify transfer mode (binary, ascii, tenex)
     

Anyway, here is the ftp section I found by crawling through Tim's 
not-yet-completed revisions of the URL draft:
---------------------------------------------------------------------------
FTP 

The ftp: prefix indicates a file which is to be picked up from the file system 
of the given host. The FTP protocol is used, as defined in RFC957 or any 
successor. The port number, if present, gives the port of the FTP server if not 
the FTP default. (A client may in practice use local file access to retrieve 
objects which are available though more efficient means such as local file open 
or NFS mounting, where this is available and equivalent). 

The syntax allows for the inclusion of a user name and even a password for 
those systems which do not use the anonymous FTP convention. The default, 
however, if no user or password is supplied, will be to use that convention, 
viz. that the user name is "anonymous" and the password the user's 
Internet-style mail address.

The FTP protocol allows for a sequence of CWD commands (change working 
directory) prior to a RETR (retrieve) which actually accesses a file. The 
arguments of any CWD commands are successive segment parts of the URL, and 
the filename argument to the RETR command is the final segment of the URL 
path. 


Note

In the case in which the file system of the server is known or guessed by the 
client, the path may possibly converted into a filename. This may (in some 
cases) allow the file to be retrieved in one RETR command with no CWD command. 
In the case of unix, the filename will in fact look the same as the URI path. 
This must NOT be taken to indicate that the URL is a unix filename. In 
practice, as many FTP servers in fact have or emulate unix file systems, it 
may in fact be time-efficient to attempt first a direct retrieval guessing unix 
syntax, and, if that fails, to attempt the official sequence of succession of 
directory changes followed by a RETR command.

There is no common hierarchical model to the FTP protocol, so if a directory 
change command has been given, it is impossible in general to deduce what 
sequence should be given to navigate to another directory for a second 
retrieval, if the paths are different. The only reliable algorithm is to 
disconnect and reestablish the control connection. However, if no directory 
changes have been made, but direct retrieval has been done, then the control 
connection may be kept. Another possible uninvestigated method is to use CDUP 
on the trial assumption of a hierarchical structure to return a point in common 
between the first and second URLs.
-----------------------------------------------------------------------------





Mark P. McCahill

gopherspace engineer/University of Minnesota
mpm@boombox.micro.umn.edu
612 625 1300 (voice)      612 625 6817 (fax)