URI:Uniform Resource Identifier哩盲,即統(tǒng)一資源標(biāo)志符前方。
URL:Uniform Resource Locator,統(tǒng)一資源定位符廉油。
URN:Uniform Resource Name惠险,統(tǒng)一資源命名。
URL 屬于 URI 的真子集抒线,我們看原始的 URL 定義:
The term "Uniform Resource Locator" (URL) refers to the subset of URIs that, in addition to identifying a resource, provide a means of locating the resource by describing its primary access mechanism (e.g., its network "location").
上面這句話強(qiáng)調(diào)的重點(diǎn)就是:除了標(biāo)識資源之外班巩,還通過描述其主要訪問機(jī)制來提供定位資源的手段。即如果要成為一個URL嘶炭,必須具有訪問機(jī)制趣竣,比如:http、https 和 ftp等旱物。因此我們平時輸入瀏覽器的就是一個URL遥缕,只有通過URL你才能獲取到一個資源。
那么問題來了:
- 我們的郵箱 123456789@qq.com 是 URL 嗎宵呛?不是
準(zhǔn)確的說:name@email.com 不是URL,单匣,即 123456789@qq.com 不是。
但是 mailto:name@email.com 是一個 URL宝穗,即mailto:123456789@qq.com 户秤,它可以在瀏覽器直接輸入的。
mailto是一個電子郵件協(xié)議逮矛,但是主要用于HTML建議一個超鏈接:
<a href="mailto:name@email.com">Email</a>
- 我們的電話是 URL 嗎? 不是
如果電話號碼1133XXXXXXXX放在 web 上那就是屬于一個資源鸡号,但沒有指明它的訪問機(jī)制就不是 URL。 - 我們的身份證號是 URL 嗎须鼎?不是
肯定不是鲸伴,同上。 - 地址:XX 省 XX 市 XX區(qū)…XX 單元 XX 室的主人是 URL 嗎晋控?不是
很多博主說這個地址就是 URL 汞窗,我不認(rèn)同。如果假設(shè)地球是一個web赡译,每個人的地址就是唯一的 MAC 地址(也可以理解為具有唯一的 IP)仲吏,那么家里的地址僅僅表明你在哪里,也沒有表明任何訪問機(jī)制(http、ftp之類)裹唆,因此不屬于 URL誓斥。 -
www.runoob.com/css/css-tutorial.html 是 URL 嗎? 不是
只有加了https://的:https://www.runoob.com/css/css-tutorial.html 的才是许帐。www.runoob.com/css/css-tutorial.html 只是一個資源的絕對路徑岖食,沒有指明獲取它的方式。
發(fā)現(xiàn)沒:只要是 唯一的資源 (或者資源的地址) 加上訪問機(jī)制 就可以形成一個URL舞吭。
URN屬于 URI 的真子集,我們看原始的 URN定義:
The term "Uniform Resource Name”(URN) has been used historically to refer to both URIs under the "urn" scheme [RFC2141], which are required to remain globally unique and persistent even when the resource ceases to exist or becomes unavailable, and to any other URI with the properties of a name.
上面這句話強(qiáng)調(diào)的重點(diǎn)就是:即使資源不再存在或變得不可用析珊,它們?nèi)匀痪哂腥治ㄒ恍院统志眯韵叟浮H绻蔀橐粋€URN,即你的名稱必須具有全局唯一性忠寻,同時還必須和位置無關(guān)惧浴,即不管我這個資源在哪里,我就是唯一的我奕剃。
那么:
- 身份證號是 URN 嗎衷旅? 是
身份證號是 URN ,因?yàn)樗ㄒ坏拇_定一個人纵朋,而且和你位置無關(guān)柿顶,不管你在哪里,都可以用身份證號唯一對應(yīng)到你操软。 - 圖書編碼(國家統(tǒng)一規(guī)范的嘁锯,不是隨便編碼)是 URN 嗎?是
圖書編碼具有唯一性聂薪,而且不管你放哪里家乘,這本書的編碼都不會變的。 -
www.runoob.com/css/css-tutorial.html 是 URN 嗎藏澳? 不是
www.runoob.com/css/css-tutorial.html是和位置相關(guān)的仁锯,我的資源換了位置,那么就不是這個網(wǎng)址了可能變成:www.baidu.com/css/css-tutorial.html 或者其他的了翔悠。
下面這個文氏圖非常清楚的表明了:
URI 就非常簡單了,簡單來說所有的一切資源基本都可以稱之為URI蓄愁。只要你這個資源可以放到web上進(jìn)行標(biāo)記腻要,都是URI 。由于現(xiàn)在基本不會刻意區(qū)分URL和URI涝登,所以基本上統(tǒng)稱為RUI雄家,很多 人只是習(xí)慣一般把網(wǎng)址叫URL而已。
關(guān)于這個 URN 和 URL 的重合之處,既要與位置無關(guān)還同時具有訪問機(jī)制趟济。磁力鏈接 magnet:?xt=urn:btih:就是最好的例子乱投。嚴(yán)格來說沒有 magnet 協(xié)議的磁力鏈接才是 URN ,加上 magnet 協(xié)議就是 URL了顷编。但是一般情況下戚炫,我們不會特意區(qū)分磁力鏈接屬于 URN 還是 URL 。磁鏈鏈接的本質(zhì)就是文件經(jīng)過哈希得到的值媳纬,比如說《流浪地球》經(jīng)過哈希得到了一串字符串双肤,那么不管這個文件被放在哪個電腦,我下載文件的時候都可以通過哈希值找到文件钮惠,因此這個哈希值和位置沒有任何關(guān)系茅糜。
如果您有不同的想法,請您留言素挽,讓我們一起學(xué)習(xí)蔑赘,一起進(jìn)步。謝謝预明。