?
This document uses PHP Chinese website manual Release
Transfer-Encoding
頭指定用于將安全地傳輸編碼的形式的實體提供給用戶。
Transfer-Encoding
是一種逐跳報頭,即應(yīng)用于兩個節(jié)點之間的消息,而不是資源本身。多節(jié)點連接的每個段可以使用不同的Transfer-Encoding
值。如果要在整個連接上壓縮數(shù)據(jù),請改為使用端到端標Content-Encoding
頭。
當出現(xiàn)在對HEAD
沒有主體的請求的響應(yīng)中時,它指示將應(yīng)用于相應(yīng)GET
消息的值。
Header type | Response header |
---|---|
Forbidden header name | yes |
Transfer-Encoding: chunked Transfer-Encoding: compress Transfer-Encoding: deflate Transfer-Encoding: gzip Transfer-Encoding: identity// Several values can be listed, separated by a commaTransfer-Encoding: gzip, chunked
chunked
數(shù)據(jù)以一系列塊的形式發(fā)送。該Content-Length
標題省略在這種情況下,并在每個需要添加十六進制格式的當前塊的長度,其次是塊“的開始\r\n
”,然后是塊本身,緊接著又“ \r\n
”。終止塊是一個常規(guī)塊,除長度為零外。其后是拖車,它由一個(可能是空的)實體標題字段序列組成。compress
使用 Lempel-Ziv-Welch(LZW)算法的格式。值名取自實施此算法的 UNIX 壓縮程序。
與大多數(shù) UNIX 發(fā)行版已經(jīng)消失的壓縮程序一樣,目前幾乎沒有瀏覽器使用這種內(nèi)容編碼,部分原因是由于專利問題(已在2 003年過期)。deflate
使用 deflate 壓縮算法(在RFC 1951中定義)使用zlib結(jié)構(gòu)(在RFC 1950中定義)。一種使用Lempel-Ziv編碼(LZ77)和32位 CRC 的格式。這最初是 UNIX gzip 程序的格式。為了兼容性的目的,HTTP / 1.1 標準還建議支持該內(nèi)容編碼的服務(wù)器應(yīng)該將其識別為別名。gzipx-gzipidentity
指示身份功能(即不壓縮,也不修改)。除非明確指定,否則此標記始終被視為可接受。
當大量數(shù)據(jù)發(fā)送到客戶端時,分塊編碼非常有用,并且在請求完全處理之前可能不知道響應(yīng)的總大小。例如,生成從數(shù)據(jù)庫查詢產(chǎn)生的大型 HTML 表格或傳輸大型圖像時。分塊的響應(yīng)如下所示:
HTTP/1.1 200 OK Content-Type: text/plain Transfer-Encoding: chunked7\r\n Mozilla\r\n 9\r\n Developer\r\n7\r\n Network\r\n0\r\n \r\n
Specification | Title |
---|---|
RFC 7230, section 3.3.1: Transfer-Encoding | Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing |
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) |