你能寫出正確的網址嗎?


URI,統一資源標識符(Uniform Resource Identifier)。因為它經常出現在瀏覽器的地址欄里,所以俗稱為“網絡地址”,簡稱“網址”。

一、URI格式

URI 本質上是一個字符串,這個字符串的作用是唯一地標記資源的位置或者名字。

下面的這張圖顯示了 URI 最常用的形式,由 scheme、host:port、path 和 query 四個部分組成,但有的部分可以視情況省略。

 

 URI 第一個組成部分叫scheme,翻譯成中文叫“方案名”或者“協議名”,表示資源應該使用哪種協議來訪問。

在 scheme 之后,必須是三個特定的字符“://”,它把 scheme 和后面的部分分離開。

第二個部分是主機加端口,鎖定資源路徑。

再加上后面標記資源所在位置的path,瀏覽器就能訪問服務器資源了。

最后一個部分是代表參數,有時候請求會帶着參數去查詢某些信息,這時就要加上最后一個部分。URI 的 path 部分必須以“/”開始,也就是必須包含“/”

二、實例   這時我們來訪問一下資源,實地測試一下。

1. 在瀏覽器中打開空白頁面,然后F12打開開發者工具,訪問網址:http://www.chrono.com/11-1,出現下面提示:

 

 這時左邊就出現了剛才我們學習的URI結構每個部分。然后點擊右邊下面第一條,查看HTTP請求信息,如下:

這時發現起始行中請求目標地址並不全,這是因為Host中有了主機地址,加上起始行最后也有HTTP協議,所以為避免重復,就省去了。

三、URI的編碼

有時候網址中會有中文或者其他特殊字符,這時候進行訪問自然是不行的,URI 引入了編碼機制,對於 ASCII 碼以外的字符集和特殊字符做一個特殊的操作,把它們轉換成與 URI 語義不沖突的形式。

URI 轉義的規則有點“簡單粗暴”,直接把非 ASCII 碼或特殊字符轉換成十六進制字節值,然后前面再加上一個“%”。

例如,空格被轉義成“%20”,“?”被轉義成“%3F”。而中文、日文等則通常使用 UTF-8 編碼后再轉義,例如“銀河”會被轉義成“%E9%93%B6%E6%B2%B3”。

四、課后作業

1. HTTP 協議允許在在請求行里使用完整的 URI,但為什么瀏覽器沒有這么做呢?

答:前面已經說過了,因為在請求頭的字段中都有,沒必要重復。
2. URI 的查詢參數和頭字段很相似,都是 key-value 形式,都可以任意自定義,那么它們在使用時該如何區別呢?

答:通過最開始的?和每個KV中間的&來區別。

至此,結束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM