URI:统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串。该种标识允许用户对网络中(一般指万维网)的资源通过特定的协议进行交互操作。URI由包括确定语法和相关协议的方案所定义。
URI可被视为定位符(URL),名称(URN)或两者兼备。统一资源名(URN)如同一个人的名称,而统一资源定位符(URL)代表一个人的住址。换言之,URN定义某事物的身份,而URL提供查找该事物的方法。
在类Unix操作系统中,一个典型的URL地址可能是一个文件目录,例如file:///home/username/RomeoAndJuliet.pdf。该URL标识出存储于本地硬盘中的电子书文件。因此,URL和URN有着互补的作用。
URL是一种URI,它标识一个互联网资源,并指定对其进行操作或取得该资源的方法。可能通过对主要访问手段的描述,也可能通过网络“位置”进行标识。例如,http://www.wikipedia.org/这个URL,标识一个特定资源(首页)并表示该资源的某种形式(例如以编码字符表示的,首页的HTML代码)是可以通过HTTP协议从www.wikipedia.org这个网络主机获得的。URN是基于某命名空间通过名称指定资源的URI。人们可以通过URN来指出某个资源,而无需指出其位置和获得方式。资源无需是基于互联网的。例如,URN urn:isbn:0-395-36341-1 指定标识系统(即国际标准书号ISBN)和某资源在该系统中的唯一表示的URI。它可以允许人们在不指出其位置和获得方式的情况下谈论这本书。
标记语言中URI引用的使用
在HTML中,img元素的src属性值是URI引用,a或link元素的href属性值亦如是。
在XML中,在一个DTD中的SYSTEM关键字之后出现的系统描述符是一个无片段的URI引用。
在XSLT中,xsl:import元素/指令的href属性值是一个URI引用,document()函数的第一个参数与之相仿。
绝对URI的例子
http://example.org/absolute/URI/with/absolute/path/to/resource.txt
ftp://example.org/resource.txt
urn:issn:1535-3613
URI引用的例子
http://en.wikipedia.org/wiki/URI#Examples_of_URI_references ("http" 指定协议名, "en.wikipedia.org"是“典据”, "/wiki/URI"是指向英文维基页面的“路径”,而"#Examples_of_URI_references"是指向英文维基页面相应片段的“片段”。)
http://example.org/absolute/URI/with/absolute/path/to/resource.txt
//example.org/scheme-relative/URI/with/absolute/path/to/resource.txt
/relative/URI/with/absolute/path/to/resource.txt
relative/path/to/resource.txt
../../../resource.txt
./resource.txt#frag01
resource.txt
#frag01
(空字符串)
URI解析
“解析”一个URI意味着将一个相对URI引用转换为绝对形式,或者通过尝试获取一个可解引URI或一个URI引用所代表的资源来解引用这个URI。文档处理软件的“解析”部分通常同时提供这两种功能。
一个URI引用可以是一个同文档引用:一个指向包含URI引用自身的文档的引用。文档处理软件可有效地使用其当前的文档资源来完成对于同文档引用的解析而不需要重新取得一份资源。这只是一个建议——文档处理软件自然可以选用另外的方法来决定是否获取新资源。
当前截至2009 年的URI规范,RFC 3986,将一个同文档引用的URI定义为“当解析为绝对形式时与引用的基文档地址完全一致的文档”。一般来说,基文档URI就是包含引用的文档的URI。例如,XSLT 1.0包括document()函数以实现这一功能。RFC 3986同时也正式定义了URI等效性,一个可以被[谁?]用来判断一个与基URI不同的URI是否表示同一个资源,并因此可以被认为是同文档引用。
RFC 2396给出了一个不同的判断同文档引用的方法;RFC 3986替代了RFC 2396,但RFC 2396仍旧作为许多规范和实现的基础而存在。这一规范将一个空字符串或仅包括#字符和可选的片段标识符组成的URI引用定义为同文档引用。