URL URI和URN三者之間的區別

2021-08-09 20:59:37 字數 1693 閱讀 5505

這三個縮略詞是tim berners-lee在一篇名為rfc 3986: uniform resource identifier (uri): generic syntax的文件中定義的網際網路標準追蹤協議。

首先我們要弄清楚一件事:url和urn都是uri的子集。

換言之,url和urn都是uri,但是uri不一定是url或者urn。為了更好的理解這個概念,看下面這張。

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

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

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

所有的urn都遵循如下語法(引號內的短語是必須的):

1

<

urn>::=

"urn:"

<

nid>

":"<

nss>

其中nid是命名空間識別符號,nss是標識命名空間的特定字串。

我們來看一下上述概念如何應用於與我們息息相關的網際網路。

再次引用wikipedia ,這些引文給出的解釋,比上面人員位址的例子更為專業:

關於url:

url是uri的一種,不僅標識了web 資源,還指定了操作或者獲取方式,同時指出了主要訪問機制和網路位置。

關於urn:

urn是uri的一種,用特定命名空間的名字標識資源。使用urn可以在不知道其網路位置及訪問方式的情況下討論資源。

現在,如果到web上去看一下,你會找出很多例子,這比其他東西更容易讓人困惑。我只展示乙個例子,非常簡單清楚地告訴你在網際網路中uri 、url和urn之間的不同。

我們一起來看下面這個虛構的例子。這是乙個uri:

:我們開始分析

是定義如何訪問資源的方式。另外

1bitpoetry.io

/posts

/hello

.html

是資源存放的位置,那麼,在這個例子中,

1#intro

是資源。

url是uri的乙個子集,告訴我們訪問網路位置的方式。在我們的例子中,url應該如下所示:

:urn是uri的子集,包括名字(給定的命名空間內),但是不包括訪問方式,如下所示:

1bitpoetry.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三者之間的區別

一 名詞含義 uri universal resource identifier 統一資源標誌符 url universal resource locator 統一資源定位符 urn universal resource name 統一資源名稱 二 區別 uri分為三種,url or urn or ...

你知道URL URI和URN三者之間的區別嗎?

這是乙個經典的技術爭論,許多人都會自問 url uri,很可能還有urn,它們之間的區別是什麼。雖然,現在我們簡單地把 urn 和 url 都看做 uri,但嚴格來說uri可以進一步劃分為url urn或者這兩者的組合,所以了解這三者之間的區別將會非常有趣並讓人受益匪淺。如果你恰好在某個地方碰到了這...