在 web 应用中,uri、url 经常被人混淆和无解。本文详细描述了 uri、url 以及 urn 之间的联系和区别。
先看定义
uri(uniform resource identifier,统一资源标识符)是一个用于标识某一互联网资源名称的字符串。 该种标识允许用户对网络中(一般指万维网)的资源通过特定的协议进行交互操作。
url(uniform resource locator,统一资源定位符),最常见的形式是 uri,经常指定为非正式的网址。
urn(uniform resource name,统一资源名称),其目的是通过提供一种途径,用于在特定的命名空间资源的标识,以补充网址。
uri 可以进一步划分为定位符(url),名称(urn)或两者兼备。url 和 urn 都是 uri 子集。urn 如同一个人的名称,而 url 代表一个人的住址。换言之,urn 定义某事物的身份,而 url 提供查找该事物的方法。
术语“网址”(没有正式定义)在非技术文献中时常作为 url 或 uri 的同义词出现,虽然往往其指代的只是“http”和“https”协议。
下面是一些 url 的例子
ftp://ftp.is.co.za/rfc/rfc1808.txt
http://www.ietf.org/rfc/rfc2396.txt
ldap://[2001:db8::7]/c=gb?objectclass?one
mailto:[email protected]
news:comp.infosystems.www.servers.unix
tel:+1-816-555-1212
telnet://192.0.2.16:80/
urn:oasis:names:specification:docbook:dtd:xml:4.1.2
/other/link.html (相对的 url,只在另外一个 url 的上下文有用)
下面是一些 urn 的例子
urn:isbn:0451450523 (其isbn编号,以确定一本书)
urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 (一个全局唯一标识符)
urn:publishing:book (标识文档作为一个图书类型的 xml 命名空间)