1. 程式人生 > 實用技巧 >uri 和 url有什麼不一樣

uri 和 url有什麼不一樣

本文多是收集資料,參考文章如下:
https://www.jianshu.com/p/ba15d066f777
https://danielmiessler.com/study/difference-between-uri-url/
https://www.cnblogs.com/chengdabelief/p/6635045.html

概念

相信大家都聽過 URI 和 URL ,之前以為兩個只是名字不相同,那麼瀏覽器裡面位址列是什麼呢,是URI 還是 URL?

先來看下兩者的概念:

URI : Universal Resources Identifer 統一資源標誌符
URL: Universal Resources Locator 統一資源定位符

再增加一個概念:
URN: Universal Resource Name 統一資源名稱

維基百科描述:

“URI可以分為URL,URN或同時具備locators 和names特性的一個東西。URN作用就好像一個人的名字,URL就像一個人的地址。換句話說:URN確定了東西的身份,URL提供了找到它的方式。”

在這裡插入圖片描述

細說其區別

先來看個例子,一個人的唯一標識是什麼?我們能想到身份證號,通過身份證號能讓我們能且僅能確定一個人,所以身份證號:6103829999 可以理解為URI,那麼還可以根據這個人的實體地址來找個這個人。例如,人群住址協議://地球/中國/浙江省/杭州市/西湖區/某大學/14號宿舍樓/525號寢/張三.人,哈哈這個住址格式是不是像極了 HTTP 的 URL 地址。是的,這個住址可以理解為 URL。

結論:

  1. URI,是統一資源識別符號,是一種更高層次抽象的概念,用來唯一的標識網際網路中的抽象或物理資源的字串。
  2. URL是統一資源定位器,它是一種具體的URI,即URL可以用來標識一個資源,而且還指明瞭如何locator這個資源,讓URI能成為URL的當然就是那個“訪問機制”,“網路位置”。e.g.http:// 或者 ftp://. ,所以我們常見的瀏覽器位址列內容還是稱為 URL 更合適一些。
  3. URN,統一資源命名,是通過名字來標識資源比如mailto:[email protected],就是一個特殊的名字。
  4. URL和URN都是一種URI,URL和URN則是具體的資源標識的方式。

例子,來自權威的RFC:

  • ftp://ftp.is.co.za/rfc/rfc1808.txt (also a URL because of the protocol)
  • http://www.ietf.org/rfc/rfc2396.txt (also a URL because of the protocol)
  • ldap://[2001:db8::7]/c=GB?objectClass?one (also a URL because of the protocol)
  • mailto:[email protected] (also a URL because of the protocol)
  • news:comp.infosystems.www.servers.unix (also a URL because of the protocol)
  • tel:+1-816-555-1212
  • telnet://192.0.2.16:80/ (also a URL because of the protocol)
  • urn:oasis:names:specification:docbook:dtd:xml:4.1.2

這些全都是URI, 其中那些提供了訪問機制的是URL。

各自的組成

  1. URI
    Web上可用的每種資源如HTML文件、影象、視訊片段、程式等都是一個來URI來定位的;
    URI一般由三部組成

①訪問資源的命名機制
②存放資源的主機名
③資源自身的名稱,由路徑表示,著重強調於資源。

  1. URL
    URL是Internet上用來描述資訊資源的字串,主要用在各種WWW客戶程式和伺服器程式上,特別是著名的Mosaic。
    採用URL可以用一種統一的格式來描述各種資訊資源,包括檔案、伺服器的地址和目錄等。
    URL一般由三部組成

①協議(或稱為服務方式)
②存有該資源的主機IP地址(有時也包括埠號)
③主機資源的具體地址。如目錄和檔名等