在 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 命名空間)