由 Transfer-Encoding chunked 引起的 site issue
Transfer-Encoding: chunked 介绍
Transfer-Encoding 是 HTTP 1.x
版本的一个header, 设置 payload 传输时候的一种编码. 可能的编码格式有: chunked, compress, deflate, gzip. 可以同时设置多个兼容的值. 这个header 只适用于 hop to top, 不适用于整个连接. 如果你想在整个连接上使用压缩算法, 应该使用 Content-Encoding
header.
使用 Transfer-Encoding
的例子:
Transfer-Encoding: gzip, chunked
为什么要使用 chunked
假如一开始就知道要传输多长的payload 数据, 就可以使用 Content-Length header. chunked
: 一般因为一开始并不知道要传输多长的payload数据, 所以要一块一块传输, 在每一块的头上标注这一块有多长.
例子:
HTTP/1.1 200 OK
Content-Type: text/plain
Transfer-Encoding: chunked
7\r\n
Mozilla\r\n
11\r\n
Developer Network\r\n
0\r\n
\r\n
payload header
HTTP 1.x
的 header 分为