URL是什么
URL 代表着是統一資源定位符(Uniform Resource Locator)。作用是為了告訴使用者 某個資源在 Web 上的地址。這個資源可以是一個 HTML 頁面,一個 CSS 文檔,一幅圖像或一個貓片等等。上面我們請求貓片的URL就是
https://upos-sz-staticks3.bilivideo.com/cmaskboss/164203142_30_1.jpg
這里面細分,又可以分為好幾個部分。
- 協議部分
表示該URL的協議部分為http還是https,會用//為分隔符。上面的URL表示網頁用的是HTTPS協議,而上面提到的X影天堂用的則是ftp協議的下載鏈接。
- 域名部分
域名是upos-sz-staticks3.bilivideo.com,在發送請求前,會向DNS服務器解析IP。如果已經知道ip,還可以跳過DNS解析那一步,直接把IP當做域名部分使用。
- 端口部分
域名后面有些時候會帶有端口,和域名之間用:分隔,端口不是一個URL的必須的部分。當網址為http://時,默認端口為80
當網址為https://時,默認端口為443,以上兩種都可以省略端口號。上面的URL其實省略了443端口號。
- 虛擬目錄
從域名的第一個/開始到最后一個/為止,是虛擬目錄的部分。虛擬目錄也不是URL必須的部分,本例中的虛擬目錄是/cmaskboss/
- 文件名部分
從域名最后一個/開始到?為止,是文件名部分;如果沒有?,則是從域名最后一個/開始到#為止,是文件名部分;如果沒有?和#,那么就從域名的最后一個/從開始到結束,都是文件名部分。本例中的文件名是164203142_30_1.jpg,文件名也不是一個URL的必須部分。
URI是什么
URI 代表着統一資源標識符(Uniform Resource Identifier),用於標識某一互聯網資源名稱。 該種標識允許用戶對任何包括本地和互聯網的資源通過特定的協議進行交互操作。比如上面URL中的 164203142_30_1.jpg。
URL 和 URI 的區別
- URL:Uniform Resource Locator 統一資源定位符;
- URI: Uniform Resource Identifier 統一資源標識符;
其實一直有個誤解,很多人以為URI是URL的子集,其實應該反過來。URL是URI的子集才對。簡單解釋下。
假設"小白"(URI)是一種資源,而"在迪麗亦巴的懷里"表明了一個位置。如果你想要找到(locate)小白,那么你可以到"在迪麗亦巴懷里"找到小白,而"在迪麗亦巴懷里的/小白"才是我們常說的URL。而"在迪麗亦巴懷里的/小白"(URL)顯然是"小白"(URI)的子集,畢竟,"小白"還可能是"在牛亦菲懷里的/小白"(其他URL)。
如果你想每天學習一個知識點?
關注公眾號:【golang小白成長記】

