洞悉互聯(lián)網(wǎng)前沿資訊,探尋網(wǎng)站營銷規(guī)律
作者:狐靈科技 | 2021-11-27 17:44 |點擊:
每一個 URL 都代表著一個資源對象,而當(dāng)我們請求一個網(wǎng)頁的時候,看似只請求了一個 URI(統(tǒng)一資源標(biāo)識符),實際上這個網(wǎng)頁可能包含多個 URI,例如圖片資源的 URI 和視頻資源的 URI 等。此時有些瀏覽器為了加快訪問速度,可能會同時開多個線程去請求 URI。也就是說其實每一個 URI 都發(fā)送了一個請求報文。
URI 包括 URL(統(tǒng)一資源定位符)和 URN(統(tǒng)一資源名)。但由于 URN 多還在實驗階段,實驗的并不是太廣泛,所以現(xiàn)在幾乎所有的 URI 都是 URL。
而當(dāng)我們的瀏覽器要顯示或處理這些資源的時候,我們并不知道其響應(yīng)的數(shù)據(jù)是什么類型的,為了區(qū)分這些資源類型,就需要用到 MIME 了。HTTP 會為每一個通過 web 傳輸?shù)膶ο筇砑由?MIME 類型的數(shù)據(jù)格式標(biāo)簽。瀏覽器在讀取到對應(yīng)的信息后,會調(diào)用相應(yīng)的程序去處理它,任何得到我們想要的結(jié)果。
MIME 類型在請求報文和響應(yīng)報文中均有體現(xiàn)。例如,當(dāng)我請求 http://www.cnblogs.com/scolia 這個 URL 時,
我的請求報文頭中有:
Accept 表示我當(dāng)前的瀏覽器希望接受什么類型的文件,這是請求首部,當(dāng)服務(wù)器沒有客戶端想要的資源的媒體類型時,會返回406 Not Acceptable 響應(yīng)。當(dāng)然使用了 */* 表示愿意接受任意類型的資源,所以應(yīng)不會看到這個響應(yīng)。另外,這里的 q 表示權(quán)重,權(quán)重在 0-1 之間,可以理解成客戶端在這些給出的類型中,想優(yōu)先接受什么類型,可以服務(wù)器就可以根據(jù)客戶端的需要返回相應(yīng)的資源。
如果沒有,則默認(rèn)為 1 。這里前面幾個類型都沒有標(biāo)明,則默認(rèn)都是 1 ,表示優(yōu)先這些類型,后面的 0.9 表示前面都沒有就用這個,最后的 0.8 表示如果都沒有,那么任意的類型都行。
而在響應(yīng)報文頭中有:
這里很并且的表示我響應(yīng)的是 text/html 類型的文件,瀏覽器在檢測到 MIME 類型后,就會相應(yīng)的去解析它。
但是,我說過看似請求的一個 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文件