URL,URI和URN的理解
我想很多人和我一樣弄不清楚URI和URL之間的區(qū)別,有人可能覺得這是統(tǒng)一概念的不同表述而已。
我們先看看定義:
URI:Uniform Resource Identifier,即統(tǒng)一資源標(biāo)志符,用來唯一的標(biāo)識(shí)一個(gè)資源。
URL:Uniform Resource Locator,統(tǒng)一資源定位符。即URL可以用來標(biāo)識(shí)一個(gè)資源,而且還指明了如何locate這個(gè)資源。
URN:Uniform Resource Name,統(tǒng)一資源命名。即通過名字來表示資源的。
好了定義看完了,可能還是不理解下面我們就詳細(xì)說說三者的區(qū)別和用途。
URL肯定是一個(gè)URI,但是一個(gè)URI并不一定是一個(gè)URL,URL僅僅是URI的一種表現(xiàn)形式而已。兩者的差距主要可以從命名上來區(qū)分,URI是資源標(biāo)志符,所有他只要求具有"標(biāo)識(shí)性",而URL是和URI的主要區(qū)別就是,URL除了具有URI的“標(biāo)識(shí)性”以外,還具有定位功能,可以用來描述資源的具體位置,還指明了獲取資源所采用的協(xié)議。一個(gè)完整的URL包含協(xié)議名稱,主機(jī)名稱(IP或者域名)、端口號(hào)(沒寫端口號(hào)默認(rèn) 為80端口)、路徑和查詢字符串這5個(gè)部分。比如:http://www.tjdsmy.cn:80/images/hello.png?type=png.這樣一個(gè)url,上述的5個(gè)部分分別是:網(wǎng)絡(luò)傳輸協(xié)議名稱:http,主機(jī):www.tjdsmy.cn,端口號(hào):80,路徑:images/hello.png 查詢字符串:type=png。
看完了URL和URI的區(qū)別,我們?cè)诳纯碪RN是什么東西。URN也是URL的一種表現(xiàn)形式,它和URL的區(qū)別就是與資源的位置無關(guān),正式由于位置的無關(guān)性,被某個(gè)URN標(biāo)識(shí)的資源在位置發(fā)生變化時(shí),其URI可以保持不變。
所以看來URL和URN都是URI的一種擴(kuò)展,一種表現(xiàn)形式,URL和URN肯定是一個(gè)URI,但是URI不一定是URN或URL。