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小白成長記】