HTTP 标头 |传输编码
HTTP Transfer-Encoding是一个response-type header,作为逐跳报头执行,逐跳报头连接是单个传输级连接,不能重传。此标头在两个节点之间执行(单个传输级连接)。如果存在多节点连接,则必须使用其他Transfer-Encoding
值。有一个端到端的Content-Encoding
标头,可用于压缩整个连接上的数据。
句法:
Transfer-Encoding: chunked | compress | deflate | gzip | identity
指令:此标头接受上面提到的五个指令,如下所述:
- chunked:该指令用于以块格式发送一系列数据,但必须在以十六进制格式发送数据块之前提到每个块的长度,如
'\r\n'
,然后是块本身,然后由另一个'\r\n'
。 - compress:它是一种使用 Lempel-Ziv-Welch (LZW) 算法的压缩格式。
- deflate:是一种使用zlib结构的压缩格式,采用deflate压缩算法。
- gzip:它是一种使用 Lempel-Ziv 编码 (LZ77) 的压缩格式,具有 32 位 CRC。
- identity:该指令指示始终可以接受的身份函数。
注意:终止块是常规块,这些块的长度默认为零。
示例:当服务器向客户端发送大量系列数据时,此标头的块编码很有用。在请求完成之前,响应的总大小可能是未知的。假设有来自数据库查询的大量数据,分块响应如下所示
HTTP/1.0 200 OK
Content-Type: text/plain
Transfer-Encoding: chunked
0\r\n
Mozilla\r\n
7\r\n
Developer\r\n
9\r\n
Network\r\n
0\r\n
\r\n
要检查此 Transfer-Encoding 的运行情况,请转到Inspect Element -> Network检查 Transfer-Encoding 的请求标头,如下所示,Transfer-Encoding 突出显示,您可以看到。
支持的浏览器:与HTTP Transfer-Encoding标头兼容的浏览器如下:
- 谷歌浏览器
- IE浏览器
- 火狐
- 苹果浏览器
- 歌剧