Introduction
Introduction Statistics Contact Development Disclaimer Help
rfc4266.txt - gopher-protocol - Gopher Protocol Extension Project
git clone git://bitreich.org/gopher-protocol git://enlrupgkhuxnvlhsf6lc3fziv5h2…
Log
Files
Refs
Tags
README
LICENSE
---
rfc4266.txt (12083B)
---
1
2
3
4
5
6
7 Network Working Group P. Hoffman
8 Request for Comments: 4266 VPN Consortium
9 Obsoletes: 1738 November 2005
10 Category: Standards Track
11
12
13 The gopher URI Scheme
14
15 Status of This Memo
16
17 This document specifies an Internet standards track protocol for the
18 Internet community, and requests discussion and suggestions for
19 improvements. Please refer to the current edition of the "Internet
20 Official Protocol Standards" (STD 1) for the standardization state
21 and status of this protocol. Distribution of this memo is unlimited.
22
23 Copyright Notice
24
25 Copyright (C) The Internet Society (2005).
26
27 Abstract
28
29 This document specifies the gopher Uniform Resource Identifier (URI)
30 scheme that was originally specified in RFC 1738. The purpose of
31 this document is to allow RFC 1738 to be made obsolete while keeping
32 the information about the scheme on standards track.
33
34 1. Introduction
35
36 URIs were previously defined in RFC 2396 [RFC2396], which was updated
37 by RFC 3986 [RFC3986]. Those documents also specify how to define
38 schemes for URIs.
39
40 The first definition for many URI schemes appeared in RFC 1738
41 [RFC1738]. Because that document has been made obsolete, this
42 document copies the gopher URI scheme from it to allow that material
43 to remain on standards track.
44
45 2. Scheme Definition
46
47 The gopher URL scheme is used to designate Internet resources
48 accessible using the Gopher protocol.
49
50 The base Gopher protocol is described in RFC 1436 [RFC1436] and
51 supports items and collections of items (directories). The Gopher+
52 protocol is a set of upward-compatible extensions to the base Gopher
53 protocol and is described in [Gopher+]. Gopher+ supports associating
54
55
56
57
58 Hoffman Standards Track [Page 1]
59
60 RFC 4266 The gopher URI Scheme November 2005
61
62
63 arbitrary sets of attributes and alternate data representations with
64 Gopher items. Gopher URLs accommodate both Gopher and Gopher+ items
65 and item attributes.
66
67 Historical note: The Gopher protocol was widely implemented in the
68 early 1990s, but few Gopher servers are in use today.
69
70 2.1. Gopher URL Syntax
71
72 A Gopher URL takes the form:
73
74 gopher://<host>:<port>/<gopher-path>
75
76 where <gopher-path> is one of:
77
78 <gophertype><selector>
79 <gophertype><selector>%09<search>
80 <gophertype><selector>%09<search>%09<gopher+_string>
81
82 If :<port> is omitted, the port defaults to 70. <gophertype> is a
83 single-character field to denote the Gopher type of the resource to
84 which the URL refers. The entire <gopher-path> may also be empty, in
85 which case the delimiting "/" is also optional and the <gophertype>
86 defaults to "1".
87
88 <selector> is the Gopher selector string. In the Gopher protocol,
89 Gopher selector strings are a sequence of octets that may contain any
90 octets except 09 hexadecimal (US-ASCII HT or tab), 0A hexadecimal
91 (US-ASCII character LF), and 0D (US-ASCII character CR).
92
93 Gopher clients specify which item to retrieve by sending the Gopher
94 selector string to a Gopher server.
95
96 Within the <gopher-path>, no characters are reserved.
97
98 Note that some Gopher <selector> strings begin with a copy of the
99 <gophertype> character, in which case that character will occur twice
100 consecutively. The Gopher selector string may be an empty string;
101 this is how Gopher clients refer to the top-level directory on a
102 Gopher server.
103
104 2.2. Specifying URLs for Gopher Search Engines
105
106 If the URL refers to a search to be submitted to a Gopher search
107 engine, the selector is followed by an encoded tab (%09) and the
108 search string. To submit a search to a Gopher search engine, the
109 Gopher client sends the <selector> string (after decoding), a tab,
110 and the search string to the Gopher server.
111
112
113
114 Hoffman Standards Track [Page 2]
115
116 RFC 4266 The gopher URI Scheme November 2005
117
118
119 2.3. URL Syntax for Gopher+ Items
120
121 Historical note: Gopher+ was uncommon even when Gopher was popular.
122
123 URLs for Gopher+ items have a second encoded tab (%09) and a Gopher+
124 string. Note that in this case, the %09<search> string must be
125 supplied, although the <search> element may be the empty string.
126
127 The <gopher+_string> is used to represent information required for
128 retrieval of the Gopher+ item. Gopher+ items may have alternate
129 views and arbitrary sets of attributes, and they may have electronic
130 forms associated with them.
131
132 To retrieve the data associated with a Gopher+ URL, a client will
133 connect to the server and send the Gopher selector, followed by a tab
134 and the search string (which may be empty), followed by a tab and the
135 Gopher+ commands.
136
137 2.4. Default Gopher+ Data Representation
138
139 When a Gopher server returns a directory listing to a client, the
140 Gopher+ items are tagged with either a "+" (denoting Gopher+ items)
141 or a "?" (denoting Gopher+ items that have a +ASK form associated
142 with them). A Gopher URL with a Gopher+ string consisting of only a
143 "+" refers to the default view (data representation) of the item, and
144 a Gopher+ string containing only a "?" refers to an item with a
145 Gopher electronic form associated with it.
146
147 2.5. Gopher+ Items with Electronic Forms
148
149 Gopher+ items that have a +ASK associated with them (i.e., Gopher+
150 items tagged with a "?") require the client to fetch the item's +ASK
151 attribute to get the form definition, and then ask the user to fill
152 out the form and return the user's responses along with the selector
153 string to retrieve the item. Gopher+ clients know how to do this but
154 depend on the "?" tag in the Gopher+ item description to know when to
155 handle this case. The "?" is used in the Gopher+ string to be
156 consistent with Gopher+ protocol's use of this symbol.
157
158 2.6. Gopher+ Item Attribute Collections
159
160 To refer to the Gopher+ attributes of an item, the Gopher URL's
161 Gopher+ string consists of "!" or "$". "!" refers to all of a Gopher+
162 item's attributes. "$" refers to all the item attributes for all
163 items in a Gopher directory.
164
165
166
167
168
169
170 Hoffman Standards Track [Page 3]
171
172 RFC 4266 The gopher URI Scheme November 2005
173
174
175 2.7. Referring to Specific Gopher+ Attributes
176
177 To refer to specific attributes, the URL's gopher+_string is
178 "!<attribute_name>" or "$<attribute_name>". For example, to refer to
179 the attribute containing the abstract of an item, the gopher+_string
180 would be "!+ABSTRACT".
181
182 To refer to several attributes, the gopher+_string consists of the
183 attribute names separated by coded spaces. For example,
184 "!+ABSTRACT% 20+SMELL" refers to the +ABSTRACT and +SMELL attributes
185 of an item.
186
187 2.8. URL Syntax for Gopher+ Alternate Views
188
189 Gopher+ allows for optional alternate data representations (alternate
190 views) of items. To retrieve a Gopher+ alternate view, a Gopher+
191 client sends the appropriate view and language identifier (found in
192 the item's +VIEW attribute). To refer to a specific Gopher+
193 alternate view, the URL's Gopher+ string would be in the form:
194
195 +<view_name>%20<language_name>
196
197 For example, a Gopher+ string of "+application/postscript%20Es_ES"
198 refers to the Spanish language postscript alternate view of a Gopher+
199 item.
200
201 2.9. URL Syntax for Gopher+ Electronic Forms
202
203 The gopher+_string for a URL that refers to an item referenced by a
204 Gopher+ electronic form (an ASK block) filled out with specific
205 values is a coded version of what the client sends to the server.
206 The gopher+_string is of the form:
207
208 +%091%0D%0A+-1%0D%0A<ask_item1_value>%0D%0A
209 <ask_item2_value>%0D%0A.%0D%0A
210
211 To retrieve this item, the Gopher client sends the following text to
212 the Gopher server.
213
214 <a_gopher_selector><tab>+<tab>1<cr><lf>
215 +-1<cr><lf>
216 <ask_item1_value><cr><lf>
217 <ask_item2_value><cr><lf>
218 .<cr><lf>
219
220
221
222
223
224
225
226 Hoffman Standards Track [Page 4]
227
228 RFC 4266 The gopher URI Scheme November 2005
229
230
231 3. Security Considerations
232
233 There are many security considerations for URI schemes discussed in
234 [RFC3986]. The Gopher protocol uses passwords in the clear for
235 authentication, and offers no privacy, both of which are considered
236 extremely unsafe in current practice.
237
238 4. Informative References
239
240 [Gopher+] Anklesaria, F., et al., "Gopher+: Upward compatible
241 enhancements to the Internet Gopher protocol", University
242 of Minnesota, July 1993, <ftp://boombox.micro.umn.edu/pub/
243 gopher/gopher_protocol/Gopher+/Gopher+.txt>
244
245 [RFC1738] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform
246 Resource Locators (URL)", RFC 1738, December 1994.
247
248 [RFC2396] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
249 Resource Identifiers (URI): Generic Syntax", RFC 2396,
250 August 1998.
251
252 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
253 Resource Identifier (URI): Generic Syntax", STD 66,
254 RFC 3986, January 2005.
255
256 [RFC1436] Anklesaria, F., McCahill, M., Lindner, P., Johnson, D.,
257 Torrey, D., and B. Albert, "The Internet Gopher Protocol
258 (a distributed document search and retrieval protocol)",
259 RFC 1436, March 1993.
260
261 Author's Address
262
263 Paul Hoffman
264 VPN Consortium
265 127 Segre Place
266 Santa Cruz, CA 95060
267 US
268
269 EMail: [email protected]
270
271
272
273
274
275
276
277
278
279
280
281
282 Hoffman Standards Track [Page 5]
283
284 RFC 4266 The gopher URI Scheme November 2005
285
286
287 Full Copyright Statement
288
289 Copyright (C) The Internet Society (2005).
290
291 This document is subject to the rights, licenses and restrictions
292 contained in BCP 78, and except as set forth therein, the authors
293 retain all their rights.
294
295 This document and the information contained herein are provided on an
296 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
297 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
298 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
299 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
300 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
301 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
302
303 Intellectual Property
304
305 The IETF takes no position regarding the validity or scope of any
306 Intellectual Property Rights or other rights that might be claimed to
307 pertain to the implementation or use of the technology described in
308 this document or the extent to which any license under such rights
309 might or might not be available; nor does it represent that it has
310 made any independent effort to identify any such rights. Information
311 on the procedures with respect to rights in RFC documents can be
312 found in BCP 78 and BCP 79.
313
314 Copies of IPR disclosures made to the IETF Secretariat and any
315 assurances of licenses to be made available, or the result of an
316 attempt made to obtain a general license or permission for the use of
317 such proprietary rights by implementers or users of this
318 specification can be obtained from the IETF on-line IPR repository at
319 http://www.ietf.org/ipr.
320
321 The IETF invites any interested party to bring to its attention any
322 copyrights, patents or patent applications, or other proprietary
323 rights that may cover technology that may be required to implement
324 this standard. Please address the information to the IETF at ietf-
325 [email protected].
326
327 Acknowledgement
328
329 Funding for the RFC Editor function is currently provided by the
330 Internet Society.
331
332
333
334
335
336
337
338 Hoffman Standards Track [Page 6]
339
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.