?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
Accept-Encoding
請求的 HTTP 標頭通告其內(nèi)容編碼,通常是一個壓縮算法中,客戶端是能夠理解的。使用內(nèi)容協(xié)商,服務(wù)器選擇其中一個提議,使用它并通過Content-Encoding
響應(yīng)頭向客戶端通知其選擇。
即使客戶端和服務(wù)器都支持相同的壓縮算法,如果身份值也可以接受,服務(wù)器可能會選擇不壓縮響應(yīng)的主體。兩種常見情況導致這種情況:
要發(fā)送的數(shù)據(jù)已經(jīng)被壓縮,并且第二次壓縮不會導致傳輸更小的數(shù)據(jù)。這可能是一些圖像格式的情況;
服務(wù)器過載并且無法承受由壓縮需求引起的計算開銷。通常,如果服務(wù)器使用80%以上的計算能力,Microsoft 建議不要進行壓縮。
只要該identity
值(即沒有編碼)沒有被明確禁止,通過一個identity;q=0
或一個*;q=0
沒有明確設(shè)定的身份值,服務(wù)器就不能發(fā)回406
Not Acceptable
錯誤。
注:
IANA 注冊管理機構(gòu)保留官方內(nèi)容編碼的完整列表。
另外兩個內(nèi)容編碼,bzip
并且bzip2
,有時使用,雖然不是標準。他們實現(xiàn)這兩個 UNIX 程序使用的算法。請注意,由于專利許可問題,第一個中斷。
Header type | Request header |
---|---|
Forbidden header name | yes |
Accept-Encoding: gzip Accept-Encoding: compress Accept-Encoding: deflate Accept-Encoding: br Accept-Encoding: identity Accept-Encoding: *// Multiple algorithms, weighted with the quality value syntax:Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5
gzip
使用 Lempel-Ziv 編碼( LZ77 )的壓縮格式,帶有32位 CRC 。
compress
使用 Lempel-Ziv-Welch( LZW )算法的壓縮格式。
deflate
使用 zlib 結(jié)構(gòu)的壓縮格式,以及 deflate 壓縮算法。
br
使用 Brotli 算法的壓縮格式。
identity
指示身份功能(即不壓縮,也不修改)。即使不存在,該值始終被認為是可以接受的。
*
匹配尚未在標題中列出的任何內(nèi)容編碼。如果標題不存在,這是默認值。這并不意味著支持任何算法; 只是表示沒有偏好。
;q=
( q 值加權(quán))任何值都按照稱為權(quán)重的相對質(zhì)量值的優(yōu)先順序排列。
Accept-Encoding: gzip Accept-Encoding: gzip, compress, br Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1
Specification | Title |
---|---|
RFC 7231, section 5.3.4: Accept-Encoding | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context |
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |