詳解URI、URN、URL

先舉一個例子,讓大家對這三個名詞又一個基本的概念:

1⃣️ ftp://ftp.is.co.za/rfc/rfc1808.txt

2⃣️ http://www.cnblogs.com/nods/p/8985322.html#position

上面列舉了十分常見的兩個網絡地址,這兩個地址都是 URI。

其中的 ftp://ftp.is.co.za/rfc/rfc1808.txt 和 http://www.cnblogs.com/nods/p/8985322.html 都是 URL。

其中的 ftp.is.co.za/rfc/rfc1808.txt 和 www.cnblogs.com/nods/p/8985322.html#position 是URN。

對於 2⃣️ 來說:

http:// 是協議 ( 文章最下方給出了常用的幾種模式或協議 )。

www.cnblogs.com/nods/p/8985322.html 是網絡資源的具體位置。

#position 則是資源。

那麼簡單的理解就是 URL 告訴你資源文件在網絡上的具體位置,URN 告訴你資源在文件的什麼地方。

URL 和 URN 都是 URI 的子集,以上的解釋是十分簡單通俗的解釋。上面兩個網絡地址,都叫做 URI, 但URI 但表現形式並不單單隻有上述兩種,還有很多其他但形式。

URI 英文全稱爲 Uniform Resource Identifier(統一資源標識符),它是一個標準,而非定義具體但表現方式。

URL Uniform Resource Locator(統一資源定位符),它實際上是一個資源標識符,但更具體的,它定位了資源的位置。

URN Uniform Resource Name(統一資源命名),作爲特定內容的唯一名稱使用的,與當前資源的所在地無關。使用URN,就可以將資源四處遷移,而不用擔心遷移後無法訪問。P2P下載中使用的磁力鏈接是URN的一種實現,它可以持久化的標識一個BT資源,資源分佈式的存儲在P2P網絡中,無需中心服務器用戶即可找到並下載它。

關於這三者有專門的出處:

這三個縮略詞是Tim Berners-Lee在一篇名爲 RFC 3986: Uniform Resource Identifier (URI): Generic Syntax 的文檔中定義的互聯網標準追蹤協議。

也可在 https://en.wikipedia.org/wiki/Uniform_Resource_Identifier 找到相關的來龍去脈。

通過下面的例子(源自 Wikipedia),我們可以很好地理解URN 和 URL之間的區別。如果是一個人,我們會想到他的姓名和住址。

URL類似於住址,它告訴你一種尋找目標的方式(在這個例子中,是通過街道地址找到一個人)。要知道,上述定義同時也是一個URI。

相對地,我們可以把一個人的名字看作是URN;因此可以用URN來唯一標識一個實體。由於可能存在同名(姓氏也相同)的情況,所以更準確地說,人名這個例子並不是十分恰當。更爲恰當的是書籍的ISBN碼和產品在系統內的序列號,儘管沒有告訴你用什麼方式或者到什麼地方去找到目標,但是你有足夠的信息來檢索到它。

對於 web 前端來說,着重瞭解 URL,而其中的網絡協議則是重中之重。

最常見的模式和協議如下:

http-超文本傳輸協議資源;
https-用安全套接字層傳送的超文本傳輸協議;
ftp-文件傳輸協議;
mailto-電子郵件地址;
file-當地電腦或網上分享的文件;
telnet-telnet協議;
idap-輕型目錄訪問協議搜索;
news-Usenet新聞組;
gopher-Gopher協議。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章