HTTP中的chunked是什么
问题
HTTP/1.1中,响应头中的
Transfer-Encoding: chunked
是什么意思?
回答
在HTTP/1.1中,Transfer-Encoding: chunked
是一种传输编码方式,用于在响应中分块传输数据。这种方式允许服务器在不知道内容长度的情况下发送响应,适用于动态生成的内容或流式数据。
对于HTML内容,使用chunked
编码时,可以提高响应速度,浏览器可以在接收到第一个数据块后立即开始渲染页面,而不必等待整个响应完成。这对于需要实时更新或逐步加载的内容非常有用。
对于动态生成的内容,可能不知道最后的数据大小,更适合使用chunked
编码。尽早把生成的内容发送出去,还能节省服务器内存占用。
格式
长度\r\n
内容\r\n
长度\r\n
内容\r\n
长度(0)\r\n
内容(空)\r\n
例如:
4\r\n
Wiki\r\n
5\r\n
pedia\r\n
E\r\n
in\r\n
\r\n
chunks.\r\n
0\r\n
\r\n
废弃
在 HTTP/2 中,Transfer-Encoding: chunked 被废弃,因为 HTTP/2 引入了更先进的 帧(frame)机制 和 流(stream)控制,已经内建了流式传输能力,无需使用传统的 chunked 编码,并且还支持多路复用。
最后修改于 2025-07-10