一、名詞含義
uri = universal resource identifier 統一資源標誌符
url = universal resource locator 統一資源定位符
urn = universal resource name 統一資源名稱
二、區別
uri分為三種,url or urn or (url and uri)
換言之,url和urn都是uri,但是uri不一定是url或者urn。為了更好的理解這個概念,看下面這張。
通過下面的例子,我們可以很好地理解urn 和 url之間的區別。如果是乙個人,我們會想到他的姓名和住址。
url類似於住址,它告訴你一種尋找目標的方式(在這個例子中,是通過街道位址找到乙個人)。要知道,上述定義同時也是乙個uri。
相對地,我們可以把乙個人的名字看作是urn;因此可以用urn來唯一標識乙個實體。由於可能存在同名(姓氏也相同)的情況,所以更準確地說,人名這個例子並不是十分恰當。更為恰當的是書籍的isbn碼和產品在系統內的序列號,儘管沒有告訴你用什麼方式或者到什麼地方去找到目標,但是你有足夠的資訊來檢索到它。
所有的urn都遵循如下語法
< urn > ::= "urn:" < nid > ":" < nss >
其中nid是命名空間識別符號,nss是標識命名空間的特定字串。
三、專業理解
url:url是uri的一種,不僅標識了web 資源,還指定了操作或者獲取方式,同時指出了主要訪問機制和網路位置。
urn:urn是uri的一種,用特定命名空間的名字標識資源。使用urn可以在不知道其網路位置及訪問方式的情況下討論資源。
現在,如果到web上去看一下,你會找出很多例子,這比其他東西更容易讓人困惑。我只展示乙個例子,非常簡單清楚地告訴你在網際網路中uri 、url和urn之間的不同。
我們一起來看下面這個虛構的例子。這是乙個uri:
我們開始分析
http://
是定義如何訪問資源的方式。另外
bitpoetry.io/posts/hello.html
是資源存放的位置,那麼,在這個例子中
#intro 表示資源
url是uri的乙個子集,告訴我們訪問網路位置的方式。在我們的例子中,url應該如下所示:
urn是uri的子集,包括名字(給定的命名空間內),但是不包括訪問方式,如下所示:
bitpoetry.io/posts/hello.html#intro
就是這樣。現在你應該能夠辨別出url和urn之間的不同。
四、總結:
如果你忘記了這篇文章的內容,至少要記住一件事:uri可以被分為url、urn或兩者的組合。如果你一直使用uri這個術語,就不會有錯。
本文**
URL URI和URN三者之間的區別
原文 區別首先我們要弄清楚一件事 url和urn都是uri的子集。換言之,url和urn都是uri,但是uri不一定是url或者urn。為了更好的理解這個概念,看下面這張。通過下面的例子 源自 wikipedia 我們可以很好地理解urn 和 url之間的區別。如果是乙個人,我們會想到他的姓名和住址...
URL URI和URN三者之間的區別
這三個縮略詞是tim berners lee在一篇名為rfc 3986 uniform resource identifier uri generic syntax的文件中定義的網際網路標準追蹤協議。首先我們要弄清楚一件事 url和urn都是uri的子集。換言之,url和urn都是uri,但是uri...
你知道URL URI和URN三者之間的區別嗎?
這是乙個經典的技術爭論,許多人都會自問 url uri,很可能還有urn,它們之間的區別是什麼。雖然,現在我們簡單地把 urn 和 url 都看做 uri,但嚴格來說uri可以進一步劃分為url urn或者這兩者的組合,所以了解這三者之間的區別將會非常有趣並讓人受益匪淺。如果你恰好在某個地方碰到了這...