To: uri@bunyip.com
Subject: diffs between previous version and this
From: Larry Masinter <masinter@parc.xerox.com>
Message-Id: <94Jul27.092624pdt.2760@golden.parc.xerox.com>
Date: Wed, 27 Jul 1994 09:26:12 PDT
For those who have asked, here is a diff between the previous version
and the one I just mailed out for discussion on Thursday:
================================================================
2,3c2,3
< draft-ietf-uri-url-05.txt L. Masinter
< Expires February 26, 1995 M. McCahill
--- > interim draft 5.2 L. Masinter > Expires February 27, 1995 M. McCahill 5c5 < July 26, 1994--- > July 27, 1994 28c28 < This Internet Draft expires February 26, 1995.--- > This Internet Draft expires February 27, 1995. 53,54c53,54 < for a resource available on the Internet. As there are many < different method of accessing resources, there are several--- > for a resource available on the Internet. Just as there are many > different methods of access to resources, there are several 57,58c57,58 < The generic syntax provides a framework for new schemes for names < to be resolved using as yet undefined protocols.--- > The generic syntax provides a framework for new URL schemes to be > resolved using as yet undefined protocols. 61,62c61,62 < rules of a completely specified name; second, we give the rules < under which parts of the name may be omitted in a well-defined--- > rules of a completely specified URL; second, we give the rules > under which parts of the URL may be omitted in a well-defined 67,69c67 < A URL consists of a scheme specifier followed by a string whose < format is a function of the scheme. A BNF description of the URL < syntax is given in section 5. URLs are written as--- > URLs are written as follows: 71c69 < URL:<scheme>:<scheme-specific-part>--- > URL:<scheme>:<scheme-specific-part> 73,75c71 < 2.1.1. URL Label < < URLs start with a constant prefix "URL:". This prefix is used to--- > A URL starts with a constant prefix "URL:". This prefix is used to 77c73,74 < elements.--- > elements. The part of the URL after the initial prefix is known as > the URL body. 79c76,84 < 2.1.2. Scheme--- > The body of the URL contains the name of the scheme being used > (<scheme>) followed by a colon and then a string (the > <scheme-specific-part>) whose interpretation depends on the scheme. > > Scheme names consist of lower case letters "a"--"z", digits, and > the characters plus ("+"), period ("."), and hyphen ("-"). For > resiliency, programs interpreting URLs should allow upper case > letters as equivalent to lower case in scheme names (e.g., allow > "HTTP" as well as "http"). 81,94c86 < After the initial "URL:" string, the next component of a URL is the < name of the scheme used, followed by a colon. Scheme names are made < of lower case letters "a"--"z", digits, and the character plus < ("+"), period ("."), and hyphen ("-"). For resiliancy, programs < interpreting URLs may wish to allow upper case letters as < equivalent to lower case in scheme names (e.g., allow < "URL:HTTP://host/" as well as "URL:http://host/"). < < 2.1.3. Scheme Specific Part < < The syntax for the rest of the URL varies depending on the scheme. < However, there is a common syntax shared by many schemes that use < IP-based protocols to specified Internet hosts, as specified in < Section 3.1.--- > A BNF description of the URL syntax is given in Section 5. 111,118c103,110 < Many URL schemes have characters that are _reserved_; their < appearance in the scheme-specific part of the URL has a designated < semantics. If it is necessary to designate a byte in a component of < a URL that would otherwise be represented by a reserved character, < it is necessary to represent that byte encoded. The characters ";", < "/", "?", ":", "@", "=" and "&" are the characters which may be < reserved for special meaning within a scheme. No other characters < may be reserved within a scheme.--- > Many URL schemes reserve certain characters for a special meaning; > their appearance in the scheme-specific part of the URL has a > designated semantics. If it is necessary to designate a byte in a > component of a URL that would otherwise be represented by a > reserved character, it is necessary to represent that byte encoded. > The characters ";", "/", "?", ":", "@", "=" and "&" are the > characters which may be reserved for special meaning within a > scheme. No other characters may be reserved within a scheme. 160c152 < prospero Prospero directory service--- > prospero Prospero Directory Service 196,197c188,189 < while <URL:ftp://foo:@host.com/> has a user name of "foo" and no < password.--- > while <URL:ftp://foo:@host.com/> has a user name of "foo" and an > empty password. 225c217 < FTP URLs follow the syntax described in section 3.1. The port--- > FTP URLs follow the syntax described in Section 3.1. The port 233c225 < conventions for "anonymous" FTP are to be used, as followed:--- > conventions for "anonymous" FTP are to be used, as follows: 310c302 < HTTP URLs take the following form:--- > The body of an HTTP URL takes the form: 312c304 < URL:http://<host>:<port>/<path>?<searchpart>--- > http://<host>:<port>/<path>?<searchpart> 315,319c307,311 < is omitted, the port defaults to 80. <path> is a HTTP selector, < and <searchpart> is a query string. The <path> is optional, as is < the <searchpart> and its preceding "?". If neither <path> nor < <searchpart> is present, the "/" may also be omitted. No user name < or password is allowed.--- > is omitted, the port defaults to 80. No user name or password is > allowed. <path> is a HTTP selector, and <searchpart> is a query > string. The <path> is optional, as is the <searchpart> and its > preceding "?". If neither <path> nor <searchpart> is present, the > "/" may also be omitted. 331,336c323,328 < items and collections of items (directories). The Gopher+ < protocol is a set of upward compatible extensions to the base < Gopher protocol and is specified in [2]. Gopher+ supports < associating arbitrary sets of attributes and alternate data < representations with Gopher items. Gopher URLs accommodate both < Gopher and Gopher+ items and item attributes.--- > items and collections of items (directories). The Gopher+ protocol > is a set of upward compatible extensions to the base Gopher > protocol and is specified in [2]. Gopher+ supports associating > arbitrary sets of attributes and alternate data representations > with Gopher items. Gopher URLs accommodate both Gopher and Gopher+ > items and item attributes. 340c332 < Gopher URLs have the following form:--- > The body of a Gopher URL takes the form: 342c334 < URL:gopher://<host>:<port>/<gopher-path>--- > gopher://<host>:<port>/<gopher-path> 344c336 < where <gopher-path> is one of--- > where <gopher-path> is one of 347a340 > <gophertype><selector>%09<gopher+_string> 366,369c359,362 < gophertype character, in which case that character will occur twice < consecutively. The gopher selector string may be an empty string; < this is how gopher clients refer to the top-level directory on a < gopher server.--- > <gophertype> character, in which case that character will occur > twice consecutively. The gopher selector string may be an empty > string; this is how gopher clients refer to the top-level directory > on a gopher server. 389a383,393 > When a gopher client retrieves an item from a Gopher+ server, the > client send Gopher+ commands to the gopher server by appending a > <tab> and the gopher+ commands after the gopher selector (and the > <tab> and search string in the case of a gopher search item). If a > Gopher+ URL does not refer to a Gopher search type, the Gopher > client sends to the server the gopher selector string, followed by > a tab, followed by the gopher+ commands. If the Gopher+ URL refers > to a Gopher search type, the client sends to the gopher server the > gopher selector string, followed by a tab, followed the search > string, followed by a tab, followed by the gopher+ commands. > 398c402 < a Gopher electronic for associated with it.--- > a Gopher electronic form associated with it. 470c474 < Mailto URLs take the form:--- > The body of a mailto URL takes the form: 472c476 < URL:mailto:<rfc822-addr-spec>--- > mailto:<rfc822-addr-spec> 491c495 < News URLs take one of two forms:--- > The body of a news URL takes one of two forms: 493,494c497,498 < URL:news:<newsgroup-name> < URL:news:<message-id>--- > news:<newsgroup-name> > news:<message-id> 504c508,509 < The URL "news:*" is used to refer to "all available news groups".--- > If <newsgroup-name> is "*" (as in <URL:news:*>), it is used to > refer to "all available news groups". 514c519,521 < (RFC 977). NNTP URLs take the form:--- > (RFC 977). > > The body of a nntp URL take the form: 516c523 < URL:nntp://<host>:<port>/<newsgroup-name>/<article-number>--- > nntp://<host>:<port>/<newsgroup-name>/<article-number> 518,519c525,526 < where <host> and <port> are as described in 3.1. If :<port> is < omitted, the port defaults to 119.--- > where <host> and <port> are as described in Section 3.1. If :<port> > is omitted, the port defaults to 119. 537c544 < Telnet URLs take the form--- > The body of a telnet URL takes the form: 539c546 < URL:telnet://<user>:<password>@<host>:<port> [ / ]--- > telnet://<user>:<password>@<host>:<port> [ / ] 541c548 < as specified in section 3.1. The port defaults to 23; the <user>--- > as specified in Section 3.1. The port defaults to 23; the <user> 555c562,566 < WAIS URLs take the following forms:--- > The body of a WAIS URLs takes one the following forms: > > wais://<host>:<port>/<database> > wais://<host>:<port>/<database>?<search> > wais://<host>:<port>/<database>/<wtype>/<wpath> 557,563c568,572 < URL:wais://<host>:<port>/<database> < URL:wais://<host>:<port>/<database>?<search> < URL:wais://<host>:<port>/<database>/<wtype>/<wpath> < < If :<port> is omitted, the port defaults to 210. The first form < designates a WAIS database that is available for searching. The < second form designates a particular search.--- > where <host> and <port> are as described in Section 3.1. If :<port> > is omitted, the port defaults to 210. The first form designates a > WAIS database that is available for searching. The second form > designates a particular search. <database> is the name of the WAIS > database being queried. 584c593 < FILE URLs take the form:--- > The body of a file URL takes the form: 586c595 < URL:file://<host>/<path>--- > file://<host>/<path> 588c597 < Where <host> is the fully qualified domain name of the system on--- > where <host> is the fully qualified domain name of the system on 593c602,603 < DISK$USER:[MY.NOTES]NOTE123456.TXT--- > > DISK$USER:[MY.NOTES]NOTE123456.TXT 597c607 < URL:file://vms.host.edu/my/notes/note12345.txt--- > <URL:file://vms.host.edu/disk$user/my/notes/note12345.txt> 610,613c620,621 < accessed via the Prospero Directory Service. Prospero URLs are < are interpreted by using a Prospero Directory Service to determine < appropriate access methods for a resource; an access method < might itself be represented as (a different) URL.--- > accessed via the Prospero Directory Service. The Prospero protocol > is defined elsewhere [16]. 615c623 < Prospero URLs take the form:--- > The body of a prospero URLs takes the form: 617c625 < URL:prospero://<host>:<port>/<hsoname>;<field>=<value>--- > prospero://<host>:<port>/<hsoname>;<field>=<value> 619,620c627,629 < as specified in section 3.1 The port defaults to 1525. No username < or password is allowed.--- > where <host> and <port> are as described in Section 3.1. If :<port> > is omitted, the port defaults to 1525. No username or password is > allowed. 622,623c631,646 < The <hsoname> corresponds to the host specific object name, as < defined in the document describing the Prospero protocol.[16].--- > Prospero URLs are interpreted by contacting an a Prospero directory > server on the specified host and port to determine appropriate > access methods for a resource, which might themselves be > represented as different URLs. External Prospero links are > represented as URLs of the underlying access method and are not > represented as Prospero URLs. > > The <hsoname> is the host-specific object name in the Prospero > protocol, suitably encoded. This name is opaque and interpreted by > the Prospero server. The semicolon ";" is reserved and may not > appear without quoting in the <hsoname>. > > Note that a slash "/" may appear in the <hsoname> without quoting > and no significance may be assumed by the application. Though > slashes may indicate hierarchical structure on the server, such > structure is not guaranteed. 625c648 < In addition, after the <hsoname>, optional field and values--- > In addition, after the <hsoname>, optional fields and values 627,629c650,652 < URL. When present, each field value pair is separated from each < other and from the rest of the URL by a semicolon (;). The name of < the field and its value are separated by an equal sign (=). If--- > URL. When present, each field/value pair is separated from each > other and from the rest of the URL by a ";" (semicolon). The name > of the field and its value are separated by a "=" (equal sign). If 631c654 < example, the version-number field can be specified to identify a--- > example, the OBJECT-VERSION field can be specified to identify a 647c670 < URL schemes must have demonstratable utility and operability. One--- > URL schemes must have demonstrable utility and operability. One 679,684c702,707 < url = "URL:" unlabelled < unlabelled = httpaddress | ftpaddress | newsaddress | < nntpaddress | telnetaddress | gopheraddress | < waisaddress | mailtoaddress | fileaddress | < prosperoaddress | otheraddress < otheraddress = scheme ":" schemepart--- > url = "URL:" urlbody > urlbody = httpbody | ftpbody | newsbody | > nntpbody | telnetbody | gopherbody | > waisbody | mailtobody | filebody | > prosperobody | otherbody > otherbody = scheme ":" schemepart 697,699c720,722 < ftpaddress = "ftp://" login [ "/" path [ ";type=" ftptype ]] < path = segment *[ "/" segment ] < segment = *[ uchar | "?" | ":" | "@" | "&" | "=" ]--- > ftpbody = "ftp://" login [ "/" fpath [ ";type=" ftptype ]] > fpath = fsegment *[ "/" fsegment ] > fsegment = *[ uchar | "?" | ":" | "@" | "&" | "=" ] 702c725,729 < httpaddress = "http://" hostport [ "/" path [ "?" search ]]--- > filebody = "file://" host [ "/" fpath ] > > httpbody = "http://" hostport [ "/" hpath [ "?" search ]] > hpath = hsegment *[ "/" hsegment ] > hsegment = *[ uchar | ";" | ":" | "@" | "&" | "=" ] 705c732 < gopheraddress = "gopher://" hostport [ / [ gtype [ selector--- > gopherbody = "gopher://" hostport [ / [ gtype [ selector 711,712c738,739 < mailtoaddress = "mailto:" encoded822addr < encoded822addr = *xchar--- > mailtobody = "mailto:" encoded822addr > encoded822addr = 1*xchar 714c741 < newsaddress = "news:" grouppart--- > newsbody = "news:" grouppart 719c746 < nntpaddress = "nntp://" hostport "/" group [ "/" digits ]--- > nntpbody = "nntp://" hostport "/" group [ "/" digits ] 721c748 < telnetaddress = "telnet://" login [ "/" ]--- > telnetbody = "telnet://" login [ "/" ] 723c750 < waisaddress = waisdatabase | waisindex | waisdoc--- > waisbody = waisdatabase | waisindex | waisdoc 731c758,760 < prosperoaddress= "prospero://" hostport "/" path *[ fieldspec ]--- > prosperobody = "prospero://" hostport "/" ppath *[ fieldspec ] > ppath = psegment *[ "/" psegment ] > psegment = *[ uchar | "?" | ":" | "@" | "&" | "=" ] 856c885 < [1] Anklesaria, F., et.al. (1993) "The Internet Gopher Protocol",--- > [1] Anklesaria, F., et al. (1993) "The Internet Gopher Protocol", 859c888 < [2] Anklesaria, F., et.al. (1993) "Gopher+ upward compatible--- > [2] Anklesaria, F., et al. (1993) "Gopher+ upward compatible 916,920c945,948 < [16] Neuman, B. Clifford, (1992) "Prospero: A Tool for Organizing < Internet Resources", Electronic Networking: Research, < Applications and Policy, Vol 1 No 2, Meckler Westport CT USA. < See also <URL:ftp://prospero.isi.edu/pub/prospero/ < doc/prospero-protocol.PS.Z>.--- > [16] Neuman, B. Clifford, and Augart, Steven (1993). "The Prospero > Protocol", USC Information Sciences Institute, June 1993 and as > updated from time to time, <URL:ftp://prospero.isi.edu/pub/ > prospero/doc/prospero-protocol.PS.Z>. 967d994 <