URL、URI與URN 區別

admin發表於2019-03-25

比較相似的概念往往難以區分,或者對它們沒有足夠了解的話可能出現錯用的現象。

標題中的三個概念無論從名稱還是內容上都非常相似,由此給很多朋友帶來一些困惑。

本文將詳細介紹一下它們之間的區別和聯絡,希望能夠給需要的朋友來一定的幫助。

一.URL:

此概念大家應該非常熟悉,對它的第一印象就是"網址",但它並不僅僅表示網址。

URL是Uniform Resource Locator,翻譯成中文是統一資源定位的意思,用來唯一的標識網際網路上對應資源。

既然,它可以準確定位資源的位置,於是可以通過它準確找到對應的資源。

語法結構:

[HTML] 純文字檢視 複製程式碼
協議型別:[//[訪問資源需要的憑證資訊@]伺服器地址[:埠號]][/資源層級UNIX檔案路徑]檔名[?查詢][#片段ID]

特別說明,URL不僅僅標識網址,網址僅僅是URL的自己,也就是說超文字傳輸協議是URL的一種。

關於超文字傳輸協議(http或者https)可以參閱URL 結構分析章節。

下面舉一個非超文字傳輸協議的統一資源定位符,結構如下:

[HTML] 純文字檢視 複製程式碼
jdbc:datadirect:oracle://myserver:1521;sid=testdb

當前專業文件,逐漸使用URI替代URL,所以可能將來URL的使用頻率會越來越低。

二.URN:

與URL相比,它的URN的出現頻率非常的低,可能以後會更低。

也是因為在正規的文件,越來越多的被URI所替代。

URN是Uniform Resource Name,翻譯成中文是統一資源名稱。

與URL類似,能夠唯一標識一個資源,但只出給資源唯一的命名,沒有給出資源的地址。

它的目的是期望對資源提供持久唯一的命名標識,並不對資源是否可用和資源的位置負責。

語法結構:

[HTML] 純文字檢視 複製程式碼
urn:<NID>:<NSS>

解析如下:

(1)."urn:"大小寫不敏感。

(2).<NID>:名稱空間標識,決定了如何解釋<NSS>的句法。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼
urn:ISBN 0-486-27557-4

上面URN可以唯一標識一本書,但是你不能以此為依據找到這本書的位置,以及此書當前是否依然有資源。

三.URI:

URI這個名稱以後的使用頻率會越來越高,在對其介紹之前首先看一個圖示:

aid[3038]

圖示分析如下:

(1).URL和URN是URI的子集。

(2).URL和URN一定是URI。

URI是Uniform Resource Identifier的簡寫形式,翻譯成中文就是統一資源識別符號。

當前正式文件,統一將URL和URN都稱作為URI,所以會在越來越多的文件中看到URI的身影。

四.三者的區別:

上面已經對三個概念進行了介紹,它們的區別應該很明顯了。

為了更加容易理解,下面再用更加通俗的語言對它們進行一下闡述,希望能夠對大家有進一步的幫助。

URL為資源提供了訪問機制,能夠通過它找到對應的資源,例如利用網址可以訪問一個頁面。

URN目的是為了唯一標識某一個資源,但是僅命名,並沒有提供訪問機制。

舉個例子,URN就如同一個車輛的車牌號碼,通過此號碼你能唯一確定一輛車,但是你並不能知道此車當前在什麼位置,而URL則如同GPS或者北斗定位,可以確定車當前的位置。URI則沒有什麼可說的,URL和URN是它的子集,以後正式文件它的出現頻率會越來越高。

相關文章