一、三者定義
URI(Uniform Resource Identifier,統一資源標識符)是一個用於標識某一互聯網資源名稱的字符串。 該種標識允許用戶對網絡中(一般指萬維網)的資源通過特定的協議進行交互操作。
URL(Uniform Resource Locator,統一資源定位符),最常見的形式是 URI,經常指定為非正式的網址。
URN(Uniform Resource Name,統一資源名稱),其目的是通過提供一種途徑,用於在特定的命名空間資源的標識,以補充網址。
1.什么是URL?
統一資源定位符(或稱統一資源定位器/定位地址、URL地址等,英語:Uniform Resource Locator,常縮寫為URL),有時也被俗稱為網頁地址(網址)。如同在網絡上的門牌,是因特網上標准的資源的地址(Address)。它最初是由蒂姆·伯納斯-李發明用來作為萬維網的地址。現在它已經被萬維網聯盟編制為因特網標准 。
URL是URI的一個子集其中URL包含位置和協議統一資源定位符(URL)的完整定義如下:
協議類型:[//[訪問資源需要的憑證信息@]服務器地址[:端口號]][/資源層級UNIX文件路徑]文件名[?查詢][#片段ID]
(1)協議類型:HTTP、HTTPS、FTP、mailto等協議
(2)層級URL標記符號(為[//],固定不變)
(3)訪問資源需要的憑證信息(可省略)
(4)服務器(域名或者IP地址)
(5)端口號
(6)路徑(以“/”字符區別路徑中的每一個目錄名稱)
(7)查詢。(GET模式的窗體參數,以“?”字符為起點,每個參數以“&”隔開,再以“=”分開參數名稱與數據,通常以UTF8的URL編碼,避開字符沖突的問題)
(8)片段(以“#‘字符為起點)
以鏈接地址:http://zh.wikipedia.org/w/index.php?title=Special:%E9%9A%8F%E6%9C%BA%E9%A1%B5%E9%9D%A2
大多數網頁瀏覽器不要求用戶輸入網頁中“http://”的部分,因為絕大多數網頁內容是超文本傳輸協議文件。同樣,“80”是超文本傳輸協議文件的常用端口號,因此一般也不必寫明
2.什么是URI?
與URL類似,URI(統一資源標識符)也是一串字符,通過使用位置,名稱或兩者來標識Internet上的資源。它允許統一識別資源。URI另外被分組為定位符,名稱或兩者,這意味着它可以描述URL,URN或兩者。
URN的典型代表就是:用於標識唯一書目的ISBN系統是一個典型的URN使用范例,用於唯一地識別書籍。
3.URL與URI的主要區別
URL(統一資源定位符)主要用於鏈接網頁,網頁組件或網頁上的程序,借助訪問方法(http,ftp,mailto等協議)來檢索位置資源。相反,URI(統一資源標識符)用於定義項目的標識,此處單詞標識符表示將一個資源與其他資源區分開,而不管使用的方法(URL或URN |
URL是URI,但URI永遠不能是URL |
URL指定要使用的協議類型,而URI不涉及協議規范 |
二、三者關系
URI 可以進一步划分為定位符(URL),名稱(URN)或兩者兼備。URL 和 URN 都是 URI 子集。URN 如同一個人的名稱,而 URL 代表一個人的住址。換言之,URN 定義某事物的身份,而 URL 提供查找該事物的方法。
用於標識唯一書目的 ISBN 系統是一個典型的 URN 使用范例。例如,ISBN 0-486-27557-4( urn:isbn:0-486-27557-4 )無二義性地標識出莎士比亞的戲劇《羅密歐與朱麗葉》的某一特定版本。為獲得該資源並閱讀該書,人們需要它的位置,也就是一個 URL 地址。在類 Unix 操作系統中,一個典型的 URL 地址可能是一個文件目錄,例如 file:///home/username/RomeoAndJuliet.pdf。該 URL 標識出存儲於本地硬盤中的電子書文件。因此,URL 和 URN 有着互補的作用。
URL 是一種 URI,它標識一個互聯網資源,並指定對其進行操作或獲取該資源的方法。可能通過對主要訪問手段的描述,也可能通過網絡“位置”進行標識。例如,http://www.waylau.com 這個 URL,標識一個特定資源(首頁)並表示該資源的某種形式(例如以編碼字符表示的,首頁的 HTML 代碼)是可以通過 HTTP 協議從www.waylau.com 這個網絡主機獲得的。URN 是基於某命名空間通過名稱指定資源的URI。人們可以通過 URN 來指出某個資源,而無需指出其位置和獲得方式。資源無需是基於互聯網的。例如,URN urn:isbn:0-395-36341-1 指定標識系統(即國際標准書號ISBN)和某資源在該系統中的唯一表示的 URI。它可以允許人們在不指出其位置和獲得方式的情況下談論這本書。
參考鏈接:
https://techdifferences.com/difference-between-url-and-uri.html
http://www.java67.com/2013/01/difference-between-url-uri-and-urn.html?m=1
https://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E5%AE%9A%E4%BD%8D%E7%AC%A6
https://zh.wikipedia.org/wiki/%E7%BB%9F%E4%B8%80%E8%B5%84%E6%BA%90%E6%A0%87%E5%BF%97%E7%AC%A6
https://blog.csdn.net/kkkloveyou/article/details/50624199