URI
是http
協議中的重要組成部分,它是一個用於標識某一互聯網資源名稱的字符串。 該種標識容許用戶對任何的資源經過特定的協議進行交互操做。vue
URI
有什麼用呢? 舉個例子:git
當沒有URI
時,若是張三想分享一段視頻給李四,那麼張三要告訴李四以下要求:github
FTP
協議訪問zhangsanvideo.com
,端口是8088
。lisi
,密碼是lisi
。/share/video
目錄下。sharetolisi.flv
文件。當有了URI
時,一切都變得很是簡單了。只需一段字符串就能表達以上的要求。
ftp://lisi:lisi@zhangsanvideo.com:8088/share/video/sharetolisi.flv
瀏覽器
這就是URI的威力。服務器
URL
是在RFC1738
文檔中定義的。全稱:Uniform Resource Locator
,統一資源定位符。它也就是咱們俗稱的網站地址。 它表示資源的位置,如同在網絡上的門牌。網絡
統一資源定位符的標準格式以下:
[協議類型]://[服務器地址]:[端口號]/[資源層級UNIX文件路徑][文件名]?[查詢]#[片斷ID]ide
其中[端口號]、[查詢]、[片斷ID]都屬於選填項。網站
在HTTP
協議中的URL
將從互聯網獲取信息的五個基本元素包括在一個簡單的地址中:
一、傳送協議
二、層級URL
標記符號(爲[//],固定不變)
三、訪問資源須要的憑證信息(可省略)
四、服務器(一般爲域名,有時爲IP地址)
五、端口號(以數字方式表示,若爲默認值可省略)
六、路徑(以"/"字符區別路徑中的每個目錄名稱)
七、查詢(GET
模式的參數。以?字符爲起點,每一個參數以&隔開,再以=分開參數名稱與值,一般以UTF8的URL編碼,避開字符衝突的問題)
八、片斷(以#字符爲起點)編碼
以https://juejin.im:80/search?query=vue&type=all
爲例,其中:3d
https
,是協議juejin.im
,是服務器443
,是端口號/search
,是路徑?query=vue&type=all
,是詢問大多數瀏覽器不要求用戶輸入協議部分(上面URL
中的https://
),由於大多數網頁內容都是HTTP/HTTPS
協議。一樣80
是HTTP
協議經常使用的端口號,443
是HTTPS
協議經常使用的端口號,所以通常也沒必要寫明。
因爲HTTP
協議容許服務器將瀏覽器重定向到另外一個網頁地址,所以許多服務器容許用戶省略網頁地址中的部分,好比www
。
URN
是在RFC2141
文檔中定義的,全稱Uniform Resource Name
,統一資源名稱。指望爲資源提供持久的、位置無關的標識方式,並容許簡單地將多個命名空間映射到單個URN
命名空間。
一個URI
的存在並不意味着被標識的資源必定是可用的,當它仍然須要保持全局惟一和持久,即便資源已經不存在了或變得不可用了。
URN
是URI
的歷史名字,只從URI
發佈以後,URN
的使用已經被URI
取代了。
URI
是在RFC1630
文檔中定義的,全稱:Uniform Resource Identifier
,統一資源標識符。它是一個用於標識某個互聯網資源名稱的字符串。
URI
文法由URI
協議名(例如http、ftp、mailto、file
),一個冒號,和協議對應的內容所構成。特定的協議定義了協議內容的語法和語義,而全部的協議都必須遵循必定的URI
文法通用規則,亦即爲某些專門目的保留部分特殊字符。URI
文法同時也就各類緣由對協議內容加以其餘的限制,例如,保證各類分層協議之間的協同性。百分號編碼也爲URI提供附加信息。
通用URI
的格式以下:
[協議名]://[用戶名]:[密碼]@[主機名]:[端口]/[路徑]?[查詢參數]#[片斷ID]
如圖所示:
URN
和URL
都已是URI
的一種。如圖所示:
URI
就是在某一規則下能把一個資源獨一無二地標識出來。在現實生活中URI
就是身份證號碼。而家庭住址也能將人標識出來,因此家庭住址也是URI
。
URL
是以描述人的位置來惟一肯定一我的的。
舉例:
住址協議://中國/廣東省/廣州市/番禺區/某大學/某宿舍樓/某宿舍/張三
能夠看到,這個字符串一樣標識出了惟一的一我的,起到URI
的做用,因此URL
是URI
的子集。
用身份證號也能夠惟一肯定一我的。對於廣州的張三來講,能夠用身份證號:440xxxxxxxxxxxxxxx來標識他。 因此URN
也是URI
的一種。
不管是用定位的方式仍是用ID
的方式,均可以惟一肯定一我的,都是URI
的一種實現。
由於URN
沒能流行起來,因此在互聯網中URI
幾乎能夠認定爲URL
。
更多文章請移步樓主github,若是喜歡請點一下star,對做者也是一種鼓勵。