diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc4266.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc4266.txt')
-rw-r--r-- | doc/rfc/rfc4266.txt | 339 |
1 files changed, 339 insertions, 0 deletions
diff --git a/doc/rfc/rfc4266.txt b/doc/rfc/rfc4266.txt new file mode 100644 index 0000000..92028b3 --- /dev/null +++ b/doc/rfc/rfc4266.txt @@ -0,0 +1,339 @@ + + + + + + +Network Working Group P. Hoffman +Request for Comments: 4266 VPN Consortium +Obsoletes: 1738 November 2005 +Category: Standards Track + + + The gopher URI Scheme + +Status of This Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2005). + +Abstract + + This document specifies the gopher Uniform Resource Identifier (URI) + scheme that was originally specified in RFC 1738. The purpose of + this document is to allow RFC 1738 to be made obsolete while keeping + the information about the scheme on standards track. + +1. Introduction + + URIs were previously defined in RFC 2396 [RFC2396], which was updated + by RFC 3986 [RFC3986]. Those documents also specify how to define + schemes for URIs. + + The first definition for many URI schemes appeared in RFC 1738 + [RFC1738]. Because that document has been made obsolete, this + document copies the gopher URI scheme from it to allow that material + to remain on standards track. + +2. Scheme Definition + + The gopher URL scheme is used to designate Internet resources + accessible using the Gopher protocol. + + The base Gopher protocol is described in RFC 1436 [RFC1436] and + supports items and collections of items (directories). The Gopher+ + protocol is a set of upward-compatible extensions to the base Gopher + protocol and is described in [Gopher+]. Gopher+ supports associating + + + + +Hoffman Standards Track [Page 1] + +RFC 4266 The gopher URI Scheme November 2005 + + + arbitrary sets of attributes and alternate data representations with + Gopher items. Gopher URLs accommodate both Gopher and Gopher+ items + and item attributes. + + Historical note: The Gopher protocol was widely implemented in the + early 1990s, but few Gopher servers are in use today. + +2.1. Gopher URL Syntax + + A Gopher URL takes the form: + + gopher://<host>:<port>/<gopher-path> + + where <gopher-path> is one of: + + <gophertype><selector> + <gophertype><selector>%09<search> + <gophertype><selector>%09<search>%09<gopher+_string> + + If :<port> is omitted, the port defaults to 70. <gophertype> is a + single-character field to denote the Gopher type of the resource to + which the URL refers. The entire <gopher-path> may also be empty, in + which case the delimiting "/" is also optional and the <gophertype> + defaults to "1". + + <selector> is the Gopher selector string. In the Gopher protocol, + Gopher selector strings are a sequence of octets that may contain any + octets except 09 hexadecimal (US-ASCII HT or tab), 0A hexadecimal + (US-ASCII character LF), and 0D (US-ASCII character CR). + + Gopher clients specify which item to retrieve by sending the Gopher + selector string to a Gopher server. + + Within the <gopher-path>, no characters are reserved. + + Note that some Gopher <selector> strings begin with a copy of the + <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. + +2.2. Specifying URLs for Gopher Search Engines + + If the URL refers to a search to be submitted to a Gopher search + engine, the selector is followed by an encoded tab (%09) and the + search string. To submit a search to a Gopher search engine, the + Gopher client sends the <selector> string (after decoding), a tab, + and the search string to the Gopher server. + + + +Hoffman Standards Track [Page 2] + +RFC 4266 The gopher URI Scheme November 2005 + + +2.3. URL Syntax for Gopher+ Items + + Historical note: Gopher+ was uncommon even when Gopher was popular. + + URLs for Gopher+ items have a second encoded tab (%09) and a Gopher+ + string. Note that in this case, the %09<search> string must be + supplied, although the <search> element may be the empty string. + + The <gopher+_string> is used to represent information required for + retrieval of the Gopher+ item. Gopher+ items may have alternate + views and arbitrary sets of attributes, and they may have electronic + forms associated with them. + + To retrieve the data associated with a Gopher+ URL, a client will + connect to the server and send the Gopher selector, followed by a tab + and the search string (which may be empty), followed by a tab and the + Gopher+ commands. + +2.4. Default Gopher+ Data Representation + + When a Gopher server returns a directory listing to a client, the + Gopher+ items are tagged with either a "+" (denoting Gopher+ items) + or a "?" (denoting Gopher+ items that have a +ASK form associated + with them). A Gopher URL with a Gopher+ string consisting of only a + "+" refers to the default view (data representation) of the item, and + a Gopher+ string containing only a "?" refers to an item with a + Gopher electronic form associated with it. + +2.5. Gopher+ Items with Electronic Forms + + Gopher+ items that have a +ASK associated with them (i.e., Gopher+ + items tagged with a "?") require the client to fetch the item's +ASK + attribute to get the form definition, and then ask the user to fill + out the form and return the user's responses along with the selector + string to retrieve the item. Gopher+ clients know how to do this but + depend on the "?" tag in the Gopher+ item description to know when to + handle this case. The "?" is used in the Gopher+ string to be + consistent with Gopher+ protocol's use of this symbol. + +2.6. Gopher+ Item Attribute Collections + + To refer to the Gopher+ attributes of an item, the Gopher URL's + Gopher+ string consists of "!" or "$". "!" refers to all of a Gopher+ + item's attributes. "$" refers to all the item attributes for all + items in a Gopher directory. + + + + + + +Hoffman Standards Track [Page 3] + +RFC 4266 The gopher URI Scheme November 2005 + + +2.7. Referring to Specific Gopher+ Attributes + + To refer to specific attributes, the URL's gopher+_string is + "!<attribute_name>" or "$<attribute_name>". For example, to refer to + the attribute containing the abstract of an item, the gopher+_string + would be "!+ABSTRACT". + + To refer to several attributes, the gopher+_string consists of the + attribute names separated by coded spaces. For example, + "!+ABSTRACT% 20+SMELL" refers to the +ABSTRACT and +SMELL attributes + of an item. + +2.8. URL Syntax for Gopher+ Alternate Views + + Gopher+ allows for optional alternate data representations (alternate + views) of items. To retrieve a Gopher+ alternate view, a Gopher+ + client sends the appropriate view and language identifier (found in + the item's +VIEW attribute). To refer to a specific Gopher+ + alternate view, the URL's Gopher+ string would be in the form: + + +<view_name>%20<language_name> + + For example, a Gopher+ string of "+application/postscript%20Es_ES" + refers to the Spanish language postscript alternate view of a Gopher+ + item. + +2.9. URL Syntax for Gopher+ Electronic Forms + + The gopher+_string for a URL that refers to an item referenced by a + Gopher+ electronic form (an ASK block) filled out with specific + values is a coded version of what the client sends to the server. + The gopher+_string is of the form: + + +%091%0D%0A+-1%0D%0A<ask_item1_value>%0D%0A + <ask_item2_value>%0D%0A.%0D%0A + + To retrieve this item, the Gopher client sends the following text to + the Gopher server. + + <a_gopher_selector><tab>+<tab>1<cr><lf> + +-1<cr><lf> + <ask_item1_value><cr><lf> + <ask_item2_value><cr><lf> + .<cr><lf> + + + + + + + +Hoffman Standards Track [Page 4] + +RFC 4266 The gopher URI Scheme November 2005 + + +3. Security Considerations + + There are many security considerations for URI schemes discussed in + [RFC3986]. The Gopher protocol uses passwords in the clear for + authentication, and offers no privacy, both of which are considered + extremely unsafe in current practice. + +4. Informative References + + [Gopher+] Anklesaria, F., et al., "Gopher+: Upward compatible + enhancements to the Internet Gopher protocol", University + of Minnesota, July 1993, <ftp://boombox.micro.umn.edu/pub/ + gopher/gopher_protocol/Gopher+/Gopher+.txt> + + [RFC1738] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform + Resource Locators (URL)", RFC 1738, December 1994. + + [RFC2396] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform + Resource Identifiers (URI): Generic Syntax", RFC 2396, + August 1998. + + [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform + Resource Identifier (URI): Generic Syntax", STD 66, + RFC 3986, January 2005. + + [RFC1436] Anklesaria, F., McCahill, M., Lindner, P., Johnson, D., + Torrey, D., and B. Albert, "The Internet Gopher Protocol + (a distributed document search and retrieval protocol)", + RFC 1436, March 1993. + +Author's Address + + Paul Hoffman + VPN Consortium + 127 Segre Place + Santa Cruz, CA 95060 + US + + EMail: paul.hoffman@vpnc.org + + + + + + + + + + + + +Hoffman Standards Track [Page 5] + +RFC 4266 The gopher URI Scheme November 2005 + + +Full Copyright Statement + + Copyright (C) The Internet Society (2005). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET + ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, + INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE + INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at ietf- + ipr@ietf.org. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + +Hoffman Standards Track [Page 6] + |