包含有关如何从其位置获取资源的信息。例如:
http://example.com/mypage.html
ftp://example.com/download.zip
mailto:user@example.com
file:///home/user/file.txt
tel:1-888-555-5555
http://example.com/resource?foo=bar#fragment
/other/link.html
(相对URL,仅在另一个URL的上下文中有用)
URL始终以协议(http
)开头,并且通常包含诸如网络主机名(example.com
)和文档路径(/foo/mypage.html
)之类的信息。URL可能具有查询参数和片段标识符。
通过唯一且持久的名称标识资源。它通常以前缀开头,urn:
例如:
urn:isbn:0451450523
通过书号ISBN识别一本书。
urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66
全局唯一标识符
urn:publishing:book
-将文档标识为书籍类型的XML名称空间。
URN可以识别想法和概念。它们不限于识别文件。如果URN确实表示文档,则可以通过“解析器”将其转换为URL。然后可以从URL下载该文档。
URI包含URL,URN和其他标识资源的方式。
既不是URL又不是URN的URI的示例是数据URI,例如data:,Hello%20World
。它不是URL也不是URN,因为URI包含数据。它既没有命名,也没有告诉您如何通过网络定位它。
也有统一的资源引用(URC),它们指向有关文档的元数据,而不是文档本身。URC的一个示例是用于查看网页源代码的标识符:view-source:http://example.com/
。URC是URL或URN的另一种URI。
经常问的问题
我听说我不应该再说URL,为什么?
HTML的W3规范指出,href
定位标记的可以包含URI,而不仅仅是URL。您应该可以放入URN,例如<a href="urn:isbn:0451450523">
。然后,您的浏览器会将该URN解析为一个URL,并为您下载该书。
是否有任何浏览器实际上知道如何通过URN提取文档?
我不知道,但是现代的Web浏览器确实实现了数据URI方案。
URL和URI之间的区别是否与相对还是绝对有关?
否。相对URL和绝对URL都是URL(和URI)。
URL和URI之间的区别是否与查询参数有关?
否。带有和不带有查询参数的URL都是URL(和URI)。
URL和URI之间的区别是否与片段标识符有关?
否。带有和不带有片段标识符的URL都是URL(和URI)。
但是W3C现在不是说URL和URI是同一回事吗?
是。W3C意识到对此存在很多困惑。他们发布了URI澄清文档,说现在可以互换使用URL和URI(表示URI)了。将URI严格划分为不同的类型(例如URL,URN和URC)不再有用。
URI既可以是URL又可以是URN吗?
现在,URN的定义比我上面所述的宽松。该URI的最新RFC说,任何URI,现在可以一个URN(不管它开头urn:
),只要它有一个名为“的性质。” 也就是说:即使资源不再存在或变得不可用,它也具有全局唯一性和持久性。例如:HTML文档类型(如中)中使用的URI http://www.w3.org/TR/html4/strict.dtd
。即使删除了w3.org网站上的页面,该URI仍将继续命名HTML4过渡文档类型。