HTTP協議-MIME類型


  每一個 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文件

  ……

  類似的含義很多,可以參考:戳這里

 


免責聲明!

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



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