URI和URL的關係,個人理解向
學校的講義了提到了URI(Uniform Resource Identifier),但是我平時見到的都是URL(Uniform Resource Locator),所以查了些資料並總結一下兩者的區別
相關定義
我們先看兩者定義,先說說URI,下面是MDN的定義:
A URI (Uniform Resource Identifier) is a string that refers to a resource.
然後是維基百科的定義
A Uniform Resource Identifier (URI) is a string of characters that unambiguously identifies a particular resource.
以上兩者意思大致相同,翻譯過來都是:URI是一個字符串,用來標識或確定資源
然後再說URL,MDN對URL定義:
Uniform Resource Locator (URL) is a text string that specifies where a resource (such as a web page, image, or video) can be found on the Internet.
維基百科對URL的定義:
A Uniform Resource Locator (URL) is a URI that specifies the means of acting upon or obtaining the representation of a resource, i.e. specifying both its primary access mechanism and network location.
兩者對URL的定義也相似,翻譯後是:URL是一個字符串,這個字符串明確了在Internet中資源(例如網頁,圖像或視頻)的位置。其中維基百科的定義中還提到了URL是一個URI。
兩者的聯繫
URL是URI的一種特定類型,儘管許多人互換使用這兩個術語。我個人認爲:
URL強調的是標識或確定資源,不論用哪種方法。而URL是通過標識資源在網絡中的位置這個方式,來達到標識或確定資源的目的。
URI更像是一種抽象類,而URL是它的一種具體實現,這也就是爲什麼URL是一種特定的URI, URL是URI的一個子集。
額外說一點,還有一個URI的具體實現,叫URN,下面是維基百科的定義:
A Uniform Resource Name (URN) is a URI that identifies a resource by name in a particular namespace. A URN may be used to talk about a resource without implying its location or how to access it
翻譯過來就是:URN 是一個URI,用於通過名稱在特定名稱空間中標識資源。URN可以來討論一個資源但是並不指明資源位置和如何獲取。
舉一個例子:在國際標準書號(ISBN)系統中,ISBN 0-486-27557-4標識莎士比亞戲劇《羅密歐與朱麗葉》的特定版本。 該版本的URN爲urn:isbn:0-486-27557-4
。 但是,這個URN沒有提供該在何處找到該書的任何信息。
總結
關於URL和URI區別之爭,其實並沒有多大意義,在我查閱維基百科時,發現URI的語法和URL的語法一模一樣,這讓我很是不解,但是這個不是主要問題。主要問題是當我們替代WEB地址時,哪個說法更爲準確,通過瞭解到兩者的包含的關係,URI毫無疑問是最保險的說法。
用一個圖總結: