📄 rfc1738.txt
字号:
fpath = fsegment *[ "/" fsegment ]
fsegment = *[ uchar | "?" | ":" | "@" | "&" | "=" ]
ftptype = "A" | "I" | "D" | "a" | "i" | "d"
;FILE(文件)
fileurl = "file://" [ host | "localhost" ] "/" fpath
;HTTP(超文本传输协议)
httpurl = "http://" hostport [ "/" hpath [ "?" search ]]
hpath = hsegment *[ "/" hsegment ]
hsegment = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
search = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
;GOPHER(请参考RFC1436)
gopherurl = "gopher://" hostport [ / [ gtype [ selector
[ "%09" search [ "%09" gopher+_string ] ] ] ] ]
gtype = xchar
selector = *xchar
gopher+_string = *xchar
;MAILTO(请参考RFC822)
mailtourl = "mailto:" encoded822addr
encoded822addr = 1*xchar ;在RFC822中进一步定义了
;NEWS(新闻,请参考RFC1036)
newsurl = "news:" grouppart
grouppart = "*" | group | article
group = alpha *[ alpha | digit | "-" | "." | "+" | "_" ]
article = 1*[ uchar | ";" | "/" | "?" | ":" | "&" | "=" ] "@" host
;NNTP(网络新闻传输协议,请参考RFC977)
nntpurl = "nntp://" hostport "/" group [ "/" digits ]
;TELNET(远程登录协议)
telneturl = "telnet://" login [ "/" ]
;WAIS(广域信息服务系统,请参考RFC1625)
waisurl = waisdatabase | waisindex | waisdoc
waisdatabase = "wais://" hostport "/" database
waisindex = "wais://" hostport "/" database "?" search
waisdoc = "wais://" hostport "/" database "/" wtype "/" wpath
database = *uchar
wtype = *uchar
wpath = *uchar
;PROSPERO
prosperourl = "prospero://" hostport "/" ppath *[ fieldspec ]
ppath = psegment *[ "/" psegment ]
psegment = *[ uchar | "?" | ":" | "@" | "&" | "=" ]
fieldspec = ";" fieldname "=" fieldvalue
fieldname = *[ uchar | "?" | ":" | "@" | "&" ]
fieldvalue = *[ uchar | "?" | ":" | "@" | "&" ]
;杂七杂八的定义
lowalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" |
"i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" |
"q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" |
"y" | "z"
hialpha = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" |
"J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" |
"S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z"
alpha = lowalpha | hialpha
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" |
"8" | "9"
safe = "$" | "-" | "_" | "." | "+"
extra = "!" | "*" | "'" | "(" | ")" | ","
national = "{" | "}" | "|" | "\" | "^" | "~" | "[" | "]" | "`"
punctuation = "<" | ">" | "#" | "%" | <">
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "="
hex = digit | "A" | "B" | "C" | "D" | "E" | "F" |
"a" | "b" | "c" | "d" | "e" | "f"
escape = "%" hex hex
unreserved = alpha | digit | safe | extra
uchar = unreserved | escape
xchar = unreserved | reserved | escape
digits = 1*digit
6.安全事项
URL方案自身并不会造成安全威胁。用户需要小心的是:在一个时刻指向一个给定对象的
URL并不会保证一直指向这个对象。甚至也不保证因服务器上对象的移动而会在后来指向
另一个不同的对象。
一种同URL相关的安全威胁是:构建一个试图执行像取回对象这样无害的等幂操作的URL
有时可能会导致发生破坏性的远程操作。这个不安全的URL通常是通过指定一个除了那
些保留给正在讨论的网络协议用的端口数产生的。客户端在无意间同一个服务器打了交
道,而这个服务器实际上正在运行一个不同的协议,这样就导致URL内容中包含的指令
被其他的协议解释了,从而产生意外操作。一个例子就是使用gopher URL来生成一个原
始的消息并通过SMTP服务器来发送。在使用那些指定端口不是缺省端口的URL时应该进
行警告,尤其是在这个端口数出现在保留空间里面的情况下。
当URL包含有嵌入式已编码的特定协议中的分隔符(例如,telnet协议的CR和LF字符)
并且在传输前没有被解码时应该引起注意。这样除了可能被用来模拟一个超出其范围的操
作或者参数,会干扰这个协议,并再一次引起执行意想不到的而且可能是有害的远程操作。
使用包含应该作为秘密的密码的URL是非常轻率的。
7.感谢
这份文件建立在基本WWW设计(RFC1630)和许多人在网络上对这个观点进行的诸多讨论
的基础上。这些讨论受到了Clifford Lynch,Brewster Kahle [10] 和 Wengyik Yeong
[18]的文章的极大鼓舞。这份文件综合了John Curran, Clifford Neuman, Ed Vielmetti
和后来的IETF URL BOF与URI工作小组的成果。
Dan Connolly, Ned Freed, Roy Fielding, Guido van Rossum, Michael Dolan, Bert
Bos, John Kunze, Olle Jarnefors, Peter Svanberg最近详细审阅了这份文件并提出
了宝贵的意见。还有许多人为这份RFC的完善提供了很大帮助。
附录:上下文URL的推荐标准
URI(统一资源标志符),包括URL,趋向于通过这样的协议来传输:这些协议为它们的解
释提供了上下文。
在有些情况下,有必要区分URL和语法结构中其他可能的数据结构。在这种情况下,建
议在URL之前加上一个有字符“URL:”组成的前缀,这个前缀可以用来把URL和其它种
类的URI区分开。
此外,其它种类的文字中包含URL的情况也很常见。例如包含在电子邮件中,USENET 新
闻消息中或者印在纸上。在这些情况下,可以很方便的用一个单独的语法分隔符号来分隔
URL并把它和文字的其它部分相分离。在一些特殊情况下,标点符号标记可能会造成URL
的其它部分出错。因为这个原因,建议使用尖括号(“<”和“>”)并使用“URL:”前缀
来界定URL。这些界定符号不会出现在URL中,也不应该出现在指定这个界定符的上下文
中。
在一个“片断/锚点”(fragment/anchor)标志符和一个URL(在一个“#”之后)相关联
的情况下,这个标志符也应该放到括号中。
在有些情况下,需要加一些额外的空白(空格,回车,制表符等)来打断那些超过一行的
长URL。在提取URL时这些空白应该被忽略。
在连字符(“-”)后不应该加入空白。因为有些排字机和打印机在打断一行是可能会(错
误地)在行末加入一个连字符,解释程序在解释一个在连字符后包含一个行中断的URL
时应该忽略行中断左右所有未编码的空白,并且应该注意到连字符可能是也可能不是URL
的一个部分。
例如:
是的,Jim,我发现它在<URL:ftp://info.cern.ch/pub/www/doc;type=d>上,但是你可
能能够从<URL:ftp://ds.internic.net/rfc>那儿获得它。请注意
<URL:http://ds.internic.net/instructions/overview.html#WARNING>上的警告。
参考文献:
[1] Anklesaria, F., McCahill, M., Lindner, P., Johnson, D.,
Torrey, D., and B. Alberti, "The Internet Gopher Protocol
(a distributed document search and retrieval protocol)",
RFC 1436, University of Minnesota, March 1993.
<URL:ftp://ds.internic.net/rfc/rfc1436.txt;type=a>
[2] Anklesaria, F., Lindner, P., McCahill, M., Torrey, D.,
Johnson, D., and B. Alberti, "Gopher+: Upward compatible
enhancements to the Internet Gopher protocol",
University of Minnesota, July 1993.
<URL:ftp://boombox.micro.umn.edu/pub/gopher/gopher_protocol
/Gopher+/Gopher+.txt>
[3] Berners-Lee, T., "Universal Resource Identifiers in WWW: A
Unifying Syntax for the Expression of Names and Addresses of
Objects on the Network as used in the World-Wide Web", RFC
1630, CERN, June 1994.
<URL:ftp://ds.internic.net/rfc/rfc1630.txt>
[4] Berners-Lee, T., "Hypertext Transfer Protocol (HTTP)",
CERN, November 1993.
<URL:ftp://info.cern.ch/pub/www/doc/http-spec.txt.Z>
[5] Braden, R., Editor, "Requirements for Internet Hosts --
Application and Support", STD 3, RFC 1123, IETF, October 1989.
<URL:ftp://ds.internic.net/rfc/rfc1123.txt>
[6] Crocker, D. "Standard for the Format of ARPA Internet Text
Messages", STD 11, RFC 822, UDEL, April 1982.
<URL:ftp://ds.internic.net/rfc/rfc822.txt>
[7] Davis, F., Kahle, B., Morris, H., Salem, J., Shen, T., Wang, R.,
Sui, J., and M. Grinbaum, "WAIS Interface Protocol Prototype
Functional Specification", (v1.5), Thinking Machines
Corporation, April 1990.
<URL:ftp://quake.think.com/pub/wais/doc/protspec.txt>
[8] Horton, M. and R. Adams, "Standard For Interchange of USENET
Messages", RFC 1036, AT&T Bell Laboratories, Center for Seismic
Studies, December 1987.
<URL:ftp://ds.internic.net/rfc/rfc1036.txt>
[9] Huitema, C., "Naming: Strategies and Techniques", Computer
Networks and ISDN Systems 23 (1991) 107-110.
[10] Kahle, B., "Document Identifiers, or International Standard
Book Numbers for the Electronic Age", 1991.
<URL:ftp://quake.think.com/pub/wais/doc/doc-ids.txt>
[11] Kantor, B. and P. Lapsley, "Network News Transfer Protocol:
A Proposed Standard for the Stream-Based Transmission of News",
RFC 977, UC San Diego & UC Berkeley, February 1986.
<URL:ftp://ds.internic.net/rfc/rfc977.txt>
[12] Kunze, J., "Functional Requirements for Internet Resource
Locators", Work in Progress, December 1994.
<URL:ftp://ds.internic.net/internet-drafts
/draft-ietf-uri-irl-fun-req-02.txt>
[13] Mockapetris, P., "Domain Names - Concepts and Facilities",
STD 13, RFC 1034, USC/Information Sciences Institute,
November 1987.
<URL:ftp://ds.internic.net/rfc/rfc1034.txt>
[14] Neuman, B., and S. Augart, "The Prospero Protocol",
USC/Information Sciences Institute, June 1993.
<URL:ftp://prospero.isi.edu/pub/prospero/doc
/prospero-protocol.PS.Z>
[15] Postel, J. and J. Reynolds, "File Transfer Protocol (FTP)",
STD 9, RFC 959, USC/Information Sciences Institute,
October 1985.
<URL:ftp://ds.internic.net/rfc/rfc959.txt>
[16] Sollins, K. and L. Masinter, "Functional Requirements for
Uniform Resource Names", RFC 1737, MIT/LCS, Xerox Corporation,
December 1994.
<URL:ftp://ds.internic.net/rfc/rfc1737.txt>
[17] St. Pierre, M, Fullton, J., Gamiel, K., Goldman, J., Kahle, B.,
Kunze, J., Morris, H., and F. Schiettecatte, "WAIS over
Z39.50-1988", RFC 1625, WAIS, Inc., CNIDR, Thinking Machines
Corp., UC Berkeley, FS Consulting, June 1994.
<URL:ftp://ds.internic.net/rfc/rfc1625.txt>
[18] Yeong, W. "Towards Networked Information Retrieval", Technical
report 91-06-25-01, Performance Systems International, Inc.
<URL:ftp://uu.psi.com/wp/nir.txt>, June 1991.
[19] Yeong, W., "Representing Public Archives in the Directory",
Work in Progress, November 1991.
[20] "Coded Character Set -- 7-bit American Standard Code for
Information Interchange", ANSI X3.4-1986.
编者地址:
Tim Berners-Lee
World-Wide Web project
CERN,
1211 Geneva 23,
Switzerland
电话:+41 (22)767 3755
传真:+41 (22)767 7155
Email:timbl@info.cern.ch
Larry Masinter
Xerox PARC
3333 Coyote Hill Road
Palo Alto, CA 94034
电话: (415) 812-4365
传真: (415) 812-4333
EMail: masinter@parc.xerox.com
Mark McCahill
Computer and Information Services,
University of Minnesota
Room 152 Shepherd Labs
100 Union Street SE
Minneapolis, MN 55455
电话: (612) 625 1300
EMail: mpm@boombox.micro.umn.edu
RFC1738——Uniform Resource Locators (URL) 统一资源定位器(URL)
1
RFC文档中文翻译计划
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -