複製鏈接
請複製以下鏈接發送給好友

Accept-Encoding

鎖定
Accept-Encoding,HTTP Header中Accept-Encoding 是瀏覽器發給服務器,聲明瀏覽器支持的編碼類型
外文名
Accept-Encoding
屬    性
計算機術語

目錄

Accept-Encoding概念

HTTP Header 中 Accept-Encoding 是瀏覽器發給服務器,聲明瀏覽器支持的編碼類型 [1] 
常見的有
Accept-Encoding: compress, gzip //支持compress 和gzip類型
Accept-Encoding:  //默認是identity
Accept-Encoding: *  //支持所有類型
Accept-Encoding: compress;q=0.5, gzip;q=1.0 //按順序支持 gzip , compress
Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0 // 按順序支持 gzip , identity
服務器返回的對應的類型編碼 Header 是 Content-Encoding。
服務器處理 Accept-Encoding 的規則如下:
1. 如果服務器可以返回定義在 Accept-Encoding 中的任何一種 Encoding 類型,那麼處理成功(除非 q 的值等於0, 等於0代表不可接受)
2. * 代表任意一種Encoding類型 (除了在 Accept-Encoding 中顯示定義的類型)
3.如果有多個 Encoding 同時匹配,按照 q 值順序排列
4. identity 總是可被接受的 Encoding 類型(除非顯示的標記這個類型q=0)
如果 Accept-Encoding 的值是空, 那麼只有identity是會被接受的類型
如果 Accept-Encoding 中的所有類型服務器都沒發返回, 那麼應該返回 406 錯誤狀態碼給客户端
如果 Request中 沒有 Accept-Encoding 那麼服務器會假設所有的 Encoding 都是可以被接受的。
如果 Accept-Encoding 中有 identity 那麼應該優先返回 identity (除非有 q 值的定義,或者你認為另外一種類型是更有意義的)
注意:
如果服務器不支持 identity 並且瀏覽器沒有發送 Accept-Encoding,那麼服務器應該傾向於使用 HTTP1.0 中的 "gzip" 和"compress" , 服務器可能按照客户端類型 發送更適合的 Encoding 類型,大部分 HTTP1.0 的客户端無法處理 q 值

Accept-Encoding編碼類型

GZIP:
GZIP最早由Jean-loup Gailly和Mark Adler創建,用於UNIX系統的文件壓縮。我們在Linux中經常會用到後綴為.gz的文件,它們就是GZIP格式的。現今已經成為Internet 上使用非常普遍的一種數據壓縮格式,或者説一種文件格式。 HTTP協議上的GZIP編碼是一種用來改進WEB應用程序性能的技術。大流量的WEB站點常常使用GZIP壓縮技術來讓用户感受更快的速度。這一般是指WWW服務器中安裝的一個功能,當有人來訪問這個服務器中的網站時,服務器中的這個功能就將網頁內容壓縮後傳輸到來訪的電腦瀏覽器中顯示出來.一般對純文本內容可壓縮到原大小的40%.這樣傳輸就快了,效果就是你點擊網址後會很快的顯示出來.當然這也會增加服務器的負載. 一般服務器中都安裝有這個功能模塊的.
COMPRESS
compress是一個相當古老的 unix 檔案壓縮指令,壓縮後的檔案會加上一個 .Z 延伸檔名以區別未壓縮的檔案,壓縮後的檔案可以以 uncompress 解壓。若要將數個檔案壓成一個壓縮檔,必須先將檔案 tar 起來再壓縮。由於 gzip 可以產生更理想的壓縮比例,一般人多已改用 gzip 為檔案壓縮工具。
參考資料