命名、定位与标志资源
编辑
URI与URL有着共同的历史。在1990年,提姆·柏內茲-李的关于超文本的提案[7]间接地引入了使用URL作为一个表示超链接目标资源的短字符串的概念。当时,人们称之为“超文本名”[8]或“文档名”。
在之后的三年半中,由于万维网的超文本标记语言核心技术、HTTP与浏览器都得到了发展,区别提供资源访问和资源标记的两种字符串的必要性开始显现。虽然其时尚未被正式定义,但“统一资源定位符”这一术语开始被用于代表前者,而后者则由“统一资源名称”所表示。
在关于定义URL和URN的争论中,人们注意到两者事实上基于同一个基础的“资源标志”的概念。在1994年6月,IETF发布了Berners-Lee的RFC 1630,(非正式地)指出了URL和URN的存在,并进一步定义了“通用资源标志符”——语义和语法由具体协议规定的类URL字符串的规范文法。此外,该RFC文档亦尝试定义了其时正被使用着的URL协议的文法,同时指出(但并未标准化)了相对URL和片段标志符的存在。
标准改良
编辑
1994年12月,RFC 1738 正式定义了绝对和相对URL,改进了URL文法,定义了如何解析URL为绝对形式,并更加完善地列举了其时正处于使用中的URL协议。而URN定义和文法直到1997年5月RFC 2141公布后才正式统一。
1998年8月,随着RFC 2396的发表,URI文法形成了独立的标准[9],同时RFC 1630和1738中关于URI和URL的许多部分也得到了修订和增补。[谁?]。新RFC修改了“URI”中“U”的含义:它开始代表统一(Uniform)而不再是通用(Universal)。RFC 1738中总结了既存URL协议的部分被移至另外一篇独立文档中。[10]IANA 保留着这些协议的注册信息[11],而RFC 2717首次描述了注册它们的流程。
在1999年12月,RFC 2732对RFC 2396进行了小幅更新,开始允许URI包括IPv6地址。一段时间以后,在两个标准中暴露出的一些问题促使了一系列的修订草案的发展,这些草案被统称为rfc2396bis。这一由RFC 2396的共同作者Roy Fielding(英语:Roy Fielding)引导协调的集体努力,由2005年1月RFC 3986的发布推至了顶峰。该RFC文档成为了现今(2009年)于互联网上被推荐使用的URI文法版本,并使得RFC 2396成为了历史。然而,它却并未替代现有的URL协议细节;RFC 1738继续管辖着大多数协议,除了某些已被它取而代之的场合——例如被RFC 2616改良的“HTTP”协议等。与此同时,IETF发布了RFC 3986,亦即完整的STD 66标准,标志着URI通用文法正式成官方因特网协议。
在2002年8月,RFC 3305指出,虽然术语“URL”仍被广泛地用于日常用语之中,但其本身已几乎被废弃。其现在的功用,仅是作为对于某些URI因包含某种指示着网络可达性的协议而作为地址存在的提醒而已。基于URI的众多标准,例如资源描述框架等,已经清楚地表明,资源标志本无需指出通过互联网获得资源副本的方法,亦无须指出资源是否基于网络。
在2006年11月1日,W3C技术架构小组(W3C's Technical Architecture Group,TAG)公布了《连接替代副本使查找和发布可行化 (页面存档备份,存于互联网档案馆)》,一个对于发布给定资源的多个版本的权威URI和其最佳实践的指导。例如,内容可能因用于访问资源的设备的支持性和设定不同,而语言或大小上有所调整已适应这种差异。
语义网使用HTTP URI协议以标志文档和现实世界中的概念:这使得人们就如何区分二者产生了一些困扰。W3C技术架构小组在2005年6月发布了一封关于如何解决这一问题的电子邮件,该邮件被称为“http范围-14 决议” 。[12]
为了扩充这个(相当简短的)电子邮件,W3C在2008年3月发布了互联网组注释《用于语义网的酷URI》[13]。这一文档详细阐释了内容协商和303重定向码的使用。