HTTP之Transfer-Encoding和Content-Encoding

Transfer-Encoding

Transfer-Encoding 消息首部指明了将 entity 安全传递给用户所采用的编码形式。

Transfer-Encoding 是一个逐跳传输消息首部,即仅应用于两个节点之间的消息传递,而不是所请求的资源本身。一个多节点连接中的每一段都可以应用不同的Transfer-Encoding 值。如果你想要将压缩后的数据应用于整个连接,那么请使用端到端传输消息首部 Content-Encoding 。

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Transfer-Encoding

Transfer-Encoding为chunked时,表示使用的分块传输编码。在数据的开头会使用16进制的数字表示数据长度,当数字为0的时候表示数据发送完毕。数据长度后面跟随CRLF( ),数据的结尾也跟随着CRLF( )。

HTTP/1.1 200 OK

Content-Encoding: gzip

Content-Type: text/xml

Transfer-Encoding: chunked

Connection: keep-alive

7

abcdefg

0

Content-Encoding

Content-Encoding 是一个实体消息首部,用于对特定媒体类型的数据进行压缩。当这个首部出现的时候,它的值表示消息主体进行了何种方式的内容编码转换。这个消息首部用来告知客户端应该怎样解码才能获取在 Content-Type 中标示的媒体类型内容。

一般建议对数据尽可能地进行压缩,因此才有了这个消息首部的出现。不过对于特定类型的文件来说,比如jpeg图片文件,已经是进行过压缩的了。有时候再次进行额外的压缩无助于负载体积的减小,反而有可能会使其增大。

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Encoding

原文地址:https://www.cnblogs.com/zcqkk/p/13293456.html