洞悉互聯網前沿資訊,探尋網站營銷規律
作者:狐靈科技 | 2021-11-27 17:44 |點擊:
每一個 URL 都代表著一個資源對象,而當我們請求一個網頁的時候,看似只請求了一個 URI(統一資源標識符),實際上這個網頁可能包含多個 URI,例如圖片資源的 URI 和視頻資源的 URI 等。此時有些瀏覽器為了加快訪問速度,可能會同時開多個線程去請求 URI。也就是說其實每一個 URI 都發送了一個請求報文。
URI 包括 URL(統一資源定位符)和 URN(統一資源名)。但由于 URN 多還在實驗階段,實驗的并不是太廣泛,所以現在幾乎所有的 URI 都是 URL。
而當我們的瀏覽器要顯示或處理這些資源的時候,我們并不知道其響應的數據是什么類型的,為了區分這些資源類型,就需要用到 MIME 了。HTTP 會為每一個通過 web 傳輸的對象添加上 MIME 類型的數據格式標簽。瀏覽器在讀取到對應的信息后,會調用相應的程序去處理它,任何得到我們想要的結果。
MIME 類型在請求報文和響應報文中均有體現。例如,當我請求 http://www.cnblogs.com/scolia 這個 URL 時,
我的請求報文頭中有:
Accept 表示我當前的瀏覽器希望接受什么類型的文件,這是請求首部,當服務器沒有客戶端想要的資源的媒體類型時,會返回406 Not Acceptable 響應。當然使用了 */* 表示愿意接受任意類型的資源,所以應不會看到這個響應。另外,這里的 q 表示權重,權重在 0-1 之間,可以理解成客戶端在這些給出的類型中,想優先接受什么類型,可以服務器就可以根據客戶端的需要返回相應的資源。
如果沒有,則默認為 1 。這里前面幾個類型都沒有標明,則默認都是 1 ,表示優先這些類型,后面的 0.9 表示前面都沒有就用這個,最后的 0.8 表示如果都沒有,那么任意的類型都行。
而在響應報文頭中有:
這里很并且的表示我響應的是 text/html 類型的文件,瀏覽器在檢測到 MIME 類型后,就會相應的去解析它。
但是,我說過看似請求的一個 URL 實際上包含了多個 URL ,如果你用工具查看,我這里用的是火狐的控制臺,可以看到我這次的請求有:
非常多個,我們看一下背景圖片的 MIME 類型是什么:
MIME 類型有非常多種,一般常見的有:
text/html:HTML 格式的文本文檔
text/plain:普通的 ASCII 文本文檔
image/jpeg:JPEG格式的圖片
image/gif:GIF格式的圖片
video/quicktime:Apple 的 QuickTime 電影
application/vnd.ms-powerpoint:微軟的powerpoint文件