📜  HTTP 标头 |传输编码

📅  最后修改于: 2022-05-13 01:56:36.199000             🧑  作者: Mango

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浏览器
  • 火狐
  • 苹果浏览器
  • 歌剧