文章不成體系,單純的做爲概念解析,僅當作筆記。bash
用於標識某一互聯網資源名稱的字符串,該種標識容許用戶對任何(包括本地和互聯網)的資源經過特定的協議進行交互操做。URI 有包括肯定語法和相關協議的方案所定義。編碼
URI 的格式由 URI 協議名(例如 http, ftp, mailto, file),一個冒號,和協議對應的內容組成。特定的協議定義了協議內容的語法和語義,而全部的協議都必須遵循必定的 URI 文法通用規則。URI 文法同時也就各類緣由對協議內容加以其餘的限制,例如,保證各類分層協議之間的協同性。百分號編碼也爲 URI 提供了附加信息。url
通用 URI 的格式以下:spa
[協議]://[用戶名]:[密碼]@[主機名]:[端口]/[路徑]?[查詢參數]#[片斷 ID]code
注:用戶名和密碼(即用戶信息)、端口、查詢參數、片斷ID可選。orm
下面是兩個 URI 示例以及組成部分:cdn
hierarchical part
┌───────────────────┴─────────────────────┐
authority path
┌───────────────┴───────────────┐┌───┴────┐
abc://username:password@example.com:123/path/data?key=value&key2=value2#fragid1
└┬┘ └───────┬───────┘ └────┬────┘ └┬┘ └─────────┬─────────┘ └──┬──┘
scheme user information host port query fragment
urn:example:mammal:monotreme:echidna
└┬┘ └──────────────┬───────────────┘
scheme path
複製代碼
一種具體的 URI,即 URL 能夠用來標識一個資源,並且還指名瞭如何 locate(定位)這個資源。通俗的講,URL 是 Internet 上用來描述資源的字符串,標識了一個互聯網資源,並指定了對其進行操做或者獲取資源的方法。目前最大的缺點是當信息資源的存放地點發生變化時,必須對 URL 做出相應的改變。blog
即經過名稱來標識資源,不依賴於位置,而且有可能減小失效連接個個數。用於標識惟一書目的 ISBN 系統是一個典型的 URN 使用範例。例如,ISBN 0486275574(urn:isbn:0-486-27557-4)無二義性地標識出莎士比亞的戲劇《羅密歐與朱麗葉》的某一特定版本。ip
URN 是基於某名字空間經過名稱指定資源的 URI。人們能夠經過 URN 來指出某個資源,而無需指出其位置和得到方式。資源無需是基於互聯網的。例如,URNurn:ISBN0-395-36341-1 指定標識系統(即國際標準書號ISBN)和某資源在該系統中的惟一表示的 URI。它能夠容許人們在不指出其位置和得到方式的狀況下談論這本書。資源
示例:
URI 指的是一個資源,URL 指的是用地址定位一個資源,URN 指的是用名稱定位一個資源。 即URL 和 URN 是 URI 的子集。
如圖所示:
舉個例子:
尋找一個具體的人:若是經過地址找,即xx省xx市xx區 ... xx單元xx室的主人,這就是 URL(經過位置定位資源);若是經過身份證號去找就是 URN(經過身份證號表示某我的,不經過某我的所在的位置)。