Http 分块传输编码 Transfer-Encoding: chunked

本文介绍了分块编码的基本概念及其在长连接和非长连接场景下的应用。详细解析了块数据报文结构,并提供了HTTP响应的具体实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义
分块编码就是把报文分割为若干大小已知的块,一次发送到接收端。

常见使用场景
长连接
发送时无法获取主体长度

其他传输场景
1、非长连接 即发送完数据后就断开连接
接收端读取到EOF(-1)即读取完毕
2、长连接
固定主体长度,通过响应头中的Content-Length决定是否读取结束。

块数据报文结构

Http响应

HTTP/1.1 200 OK <CR><LF>
Content-type: text/plain<CR><LF>
Transfer-encoding: chunked<CR><LF>
Trailer: Content-MD5<CR><LF>
<CR><LF>

第一块(十六进制标示的分块大小 27–>39)

27<CR><LF>
We hold these truths to be self-evident<CR><LF>

第二块(十六进制标示的分块大小 26–>38)

26<CR><LF>
,that all men are created equal,that<CR><LF>

最后一块(以0结尾)

0<CR><LF>

拖挂(如果在响应首部中有定义)

Content-MD5:ofj0a39889a4ug00fas9f3jf0jf<CR><LF>

拖挂可以包含附带的首部字段,他们的值在报文开始的时候可能是无法确定的(例如,必须要先生成主体结构)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值