什么是URL?
統(tǒng)一資源定位符(Uniform Resource Locator木柬,縮寫:URL),是對(duì)資源的引用和訪問該資源的方法淹办。俗稱網(wǎng)址眉枕,就是瀏覽器地址欄里面的。
一個(gè) URL 由以下不同的部分組成:
- 協(xié)議:通常是 https 或 http怜森,一種告訴瀏覽器或者設(shè)備如何訪問資源的方法速挑,當(dāng)然還有其他的協(xié)議,如 ftp 副硅、mailto 或者 file姥宝。
- 接下來(lái)是 :// 。
- 主機(jī)名:表示 IP 地址的注冊(cè)名稱(域名) 或 IP 地址恐疲,用于識(shí)別連接到網(wǎng)絡(luò)的設(shè)備的數(shù)字標(biāo)識(shí)符腊满。
- 后面是可選的端口好,前面是冒號(hào) : 培己。
- 路徑:可以引用文件系統(tǒng)路徑碳蛋,通常作為一個(gè)代碼段使用。
- 參數(shù):以問號(hào)開頭的可選查詢參數(shù)省咨,其中多個(gè)參數(shù)用 & 連接
- hash:用于為頁(yè)面上的標(biāo)題提供快速鏈接肃弟,如錨點(diǎn)鏈接。
上面是 URL 組成部份的簡(jiǎn)介,為了更加直觀笤受,如下圖所示:
什么是URI穷缤?
上面介紹了 URL 是如何構(gòu)成的,現(xiàn)在來(lái)介紹一下什么是 URI箩兽,與 URL 類似津肛,統(tǒng)一資源標(biāo)志符(Uniform Resource Identifier,縮寫:URI)比肄,提供了一種識(shí)別資源的方法快耿。但與 URL 不同的是,URI 不提供定位所述資源的方法芳绩。
URI 的最常見的形式是統(tǒng)一資源定位符(URL)掀亥,經(jīng)常指定為非正式的網(wǎng)址。由此妥色,可以看出 URI 是 URL 的超集搪花,并且每個(gè) URL 本質(zhì)上也是一個(gè) URI。
什么是URN嘹害?
統(tǒng)一資源名稱(Uniform Resource Name撮竿,縮寫:URN)是統(tǒng)一資源標(biāo)識(shí)(URI)的歷史名字,使用 urn: 作為 URI 方案笔呀。
URN 也是 URI 的子集幢踏。URN 的一個(gè)最好的例子是 ISBN 號(hào),它被用來(lái)唯一地識(shí)別一本書许师。URN 與 URL 完全不同房蝉,因?yàn)樗话魏螀f(xié)議。
URL和URI的差異
在前面《JavaScript中的Set數(shù)據(jù)操作》中介紹過(guò)使用 Set 求子集微渠,其實(shí)URL和URI的差異就是一個(gè)子集的關(guān)系搭幻,如下圖:
實(shí)際上,URL是URI的一種類型逞盆,它包括關(guān)于如何訪問資源的信息檀蹋。在 RFC3986 中的這樣一句話:
術(shù)語(yǔ)“統(tǒng)一資源定位器”(URL)指的是 URI 的子集,除了標(biāo)識(shí)資源外云芦,它還通過(guò)描述資源的主要訪問機(jī)制提供了一種定位資源的方法俯逾。
URI、URN焕数、URL
從集合的角度來(lái)考慮纱昧,URN 和 URL 都是 URI 的子集,如圖所示:
下面以一個(gè)網(wǎng)址為例堡赔,清晰的展示URI识脆、URN、URL 三者的內(nèi)容,可以更加直觀的反應(yīng)三者的關(guān)系:
從概念上總結(jié)三者的關(guān)系的話灼捂,如圖:
URL :指定位置的 URI URN :指定名稱的 URI URI :同時(shí)指定名稱和位置的 URI