Network Working Group                                         P. Hoffman
Request for Comments: 4266                                VPN Consortium
Obsoletes: 1738                                            November 2005
Category: Standards Track
        
Network Working Group                                         P. Hoffman
Request for Comments: 4266                                VPN Consortium
Obsoletes: 1738                                            November 2005
Category: Standards Track
        

The gopher URI Scheme

gopher-URI方案

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.

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (C) The Internet Society (2005).

版权所有(C)互联网协会(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.

本文档指定了最初在RFC 1738中指定的地鼠统一资源标识符(URI)方案。本文件的目的是使RFC 1738过时,同时将有关方案的信息保持在标准轨道上。

1. Introduction
1. 介绍

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.

URI先前在RFC 2396[RFC2396]中定义,并由RFC 3986[RFC3986]更新。这些文档还指定了如何定义URI的方案。

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.

许多URI方案的第一个定义出现在RFC1738[RFC1738]中。由于该文档已经过时,因此本文档从中复制了gopher URI方案,以使该材料保持在标准轨道上。

2. Scheme Definition
2. 方案定义

The gopher URL scheme is used to designate Internet resources accessible using the Gopher protocol.

gopher URL方案用于指定可使用gopher协议访问的Internet资源。

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

RFC 1436[RFC1436]中描述了基本Gopher协议,它支持项目和项目集合(目录)。Gopher+协议是对基本Gopher协议的一组向上兼容的扩展,在[Gopher+]中有描述。Gopher+支持关联

arbitrary sets of attributes and alternate data representations with Gopher items. Gopher URLs accommodate both Gopher and Gopher+ items and item attributes.

任意属性集和具有Gopher项的备用数据表示。Gopher URL同时容纳Gopher和Gopher+项目和项目属性。

Historical note: The Gopher protocol was widely implemented in the early 1990s, but few Gopher servers are in use today.

历史注释:Gopher协议在20世纪90年代早期被广泛实施,但现在很少有Gopher服务器在使用。

2.1. Gopher URL Syntax
2.1. 地鼠URL语法

A Gopher URL takes the form:

地鼠URL的形式如下:

      gopher://<host>:<port>/<gopher-path>
        
      gopher://<host>:<port>/<gopher-path>
        

where <gopher-path> is one of:

其中,<gopher path>是:

      <gophertype><selector>
      <gophertype><selector>%09<search>
      <gophertype><selector>%09<search>%09<gopher+_string>
        
      <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".

如果省略:<port>,则端口默认为70<gophertype>是一个单字符字段,用于表示URL引用的资源的Gopher类型。整个<gopher path>也可能为空,在这种情况下,定界“/”也是可选的,<gophertype>默认为“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).

<selector>是地鼠选择器字符串。在Gopher协议中,Gopher选择器字符串是一个八位字节序列,可以包含除09十六进制(US-ASCII HT或tab)、0A十六进制(US-ASCII字符LF)和0D(US-ASCII字符CR)以外的任何八位字节。

Gopher clients specify which item to retrieve by sending the Gopher selector string to a Gopher server.

Gopher客户端通过向Gopher服务器发送Gopher选择器字符串来指定要检索的项目。

Within the <gopher-path>, no characters are reserved.

在<gopher path>中,没有保留字符。

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.

请注意,某些Gopher<selector>字符串以<gophertype>字符的副本开头,在这种情况下,该字符将连续出现两次。地鼠选择器字符串可以是空字符串;这就是Gopher客户端如何引用Gopher服务器上的顶级目录。

2.2. Specifying URLs for Gopher Search Engines
2.2. 为Gopher搜索引擎指定URL

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.

如果URL指的是要提交给Gopher搜索引擎的搜索,则选择器后面跟着一个编码选项卡(%09)和搜索字符串。要向Gopher搜索引擎提交搜索,Gopher客户端将<selector>字符串(解码后)、选项卡和搜索字符串发送到Gopher服务器。

2.3. URL Syntax for Gopher+ Items
2.3. Gopher+项目的URL语法

Historical note: Gopher+ was uncommon even when Gopher was popular.

历史注释:即使在Gopher流行的时候,Gopher+也不常见。

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.

Gopher+项目的URL具有第二个编码选项卡(%09)和Gopher+字符串。请注意,在这种情况下,必须提供%09<search>字符串,尽管<search>元素可能是空字符串。

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.

<gopher+\u字符串>用于表示检索gopher+项目所需的信息。Gopher+项目可能具有备用视图和任意属性集,并且可能具有与之相关联的电子表单。

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.

要检索与Gopher+URL关联的数据,客户端将连接到服务器并发送Gopher选择器,然后发送选项卡和搜索字符串(可能为空),然后发送选项卡和Gopher+命令。

2.4. Default Gopher+ Data Representation
2.4. 默认Gopher+数据表示法

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.

当Gopher服务器将目录列表返回给客户机时,Gopher+项会被标记为“+”(表示Gopher+项)或“?”(表示Gopher+项具有与之相关联的+ASK表单)。仅包含“+”的Gopher+字符串的Gopher URL表示项目的默认视图(数据表示),仅包含“?”的Gopher+字符串表示具有与之关联的Gopher电子表单的项目。

2.5. Gopher+ Items with Electronic Forms
2.5. Gopher+带有电子表单的项目

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.

与+ASK关联的Gopher+项目(即,用“?”标记的Gopher+项目)要求客户端获取项目的+ASK属性以获取表单定义,然后要求用户填写表单并返回用户的响应以及选择器字符串以检索项目。Gopher+客户端知道如何执行此操作,但依赖Gopher+项目描述中的“?”标记来知道何时处理此情况。在Gopher+字符串中使用“?”与Gopher+协议使用此符号一致。

2.6. Gopher+ Item Attribute Collections
2.6. Gopher+项目属性集合

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.

要引用项目的Gopher+属性,Gopher URL的Gopher+字符串由“!”或“$”组成。“!”指地鼠+物品的所有属性。“$”是指Gopher目录中所有项目的所有项目属性。

2.7. Referring to Specific Gopher+ Attributes
2.7. 指特定的地鼠+属性

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".

要引用特定属性,URL的gopher+\u字符串为“!<attribute\u name>”或“$<attribute\u name>”。例如,要引用包含项目摘要的属性,gopher+\u字符串应为“!+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.

要引用多个属性,gopher+\u字符串由属性名组成,属性名由编码空格分隔。例如,“!+抽象%20+气味”指的是项目的+抽象和+气味属性。

2.8. URL Syntax for Gopher+ Alternate Views
2.8. Gopher+备选视图的URL语法

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:

Gopher+允许项目的可选替代数据表示(替代视图)。要检索Gopher+备用视图,Gopher+客户端将发送适当的视图和语言标识符(位于项目的+视图属性中)。要引用特定的Gopher+备选视图,URL的Gopher+字符串的格式如下:

      +<view_name>%20<language_name>
        
      +<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.

例如,“+application/postscript%20Es_ES”的Gopher+字符串表示Gopher+项目的西班牙语postscript备选视图。

2.9. URL Syntax for Gopher+ Electronic Forms
2.9. Gopher+电子表单的URL语法

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:

URL的gopher+_字符串指的是gopher+电子表单(ASK块)引用的项目,该表单填写了特定值,是客户端发送给服务器的内容的编码版本。gopher+\u字符串的形式如下:

      +%091%0D%0A+-1%0D%0A<ask_item1_value>%0D%0A
      <ask_item2_value>%0D%0A.%0D%0A
        
      +%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.

要检索此项目,Gopher客户端将以下文本发送到Gopher服务器。

      <a_gopher_selector><tab>+<tab>1<cr><lf>
      +-1<cr><lf>
      <ask_item1_value><cr><lf>
      <ask_item2_value><cr><lf>
      .<cr><lf>
        
      <a_gopher_selector><tab>+<tab>1<cr><lf>
      +-1<cr><lf>
      <ask_item1_value><cr><lf>
      <ask_item2_value><cr><lf>
      .<cr><lf>
        
3. Security Considerations
3. 安全考虑

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.

[RFC3986]中讨论了URI方案的许多安全注意事项。Gopher协议使用明文密码进行身份验证,并且不提供隐私,在当前实践中,这两者都被认为是极其不安全的。

4. Informative References
4. 资料性引用
   [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>
        
   [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.

[RFC1738]Berners Lee,T.,Masinter,L.,和M.McCahill,“统一资源定位器(URL)”,RFC 17381994年12月。

[RFC2396] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifiers (URI): Generic Syntax", RFC 2396, August 1998.

[RFC2396]Berners Lee,T.,Fielding,R.,和L.Masinter,“统一资源标识符(URI):通用语法”,RFC 2396,1998年8月。

[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005.

[RFC3986]Berners Lee,T.,Fielding,R.,和L.Masinter,“统一资源标识符(URI):通用语法”,STD 66,RFC 3986,2005年1月。

[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.

[RFC1436]Anklesaria,F.,McCahill,M.,Lindner,P.,Johnson,D.,Torrey,D.,和B.Albert,“互联网地鼠协议(分布式文档搜索和检索协议)”,RFC 1436,1993年3月。

Author's Address

作者地址

Paul Hoffman VPN Consortium 127 Segre Place Santa Cruz, CA 95060 US

美国加利福尼亚州圣克鲁斯塞格雷广场127号保罗·霍夫曼私人有限公司,邮编95060

   EMail: paul.hoffman@vpnc.org
        
   EMail: paul.hoffman@vpnc.org
        

Full Copyright Statement

完整版权声明

Copyright (C) The Internet Society (2005).

版权所有(C)互联网协会(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.

本文件受BCP 78中包含的权利、许可和限制的约束,除其中规定外,作者保留其所有权利。

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.

IETF对可能声称与本文件所述技术的实施或使用有关的任何知识产权或其他权利的有效性或范围,或此类权利下的任何许可可能或可能不可用的程度,不采取任何立场;它也不表示它已作出任何独立努力来确定任何此类权利。有关RFC文件中权利的程序信息,请参见BCP 78和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.

向IETF秘书处披露的知识产权副本和任何许可证保证,或本规范实施者或用户试图获得使用此类专有权利的一般许可证或许可的结果,可从IETF在线知识产权存储库获取,网址为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.

IETF邀请任何相关方提请其注意任何版权、专利或专利申请,或其他可能涵盖实施本标准所需技术的专有权利。请将信息发送至IETF的IETF-ipr@ietf.org.

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。