首页 > Web开发 > 详细

HTTP协议扫盲(九 )HTTP1.1响应的Transfer-Encoding=chunked方式

时间:2017-09-07 18:55:39      阅读:294      评论:0      收藏:0      [点我收藏+]

一、背景知识

1、chunked编码

分块传输编码(Chunked transfer encoding)是只在HTTP协议1.1版本(HTTP/1.1)中提供的一种数据传送机制。以往HTTP的应答中数据是整个一起发送的,并在应答头里Content-Length字段标识了数据的长度,以便客户端知道应答消息的结束。

2、好处

对于动态生成的应答内容来说,内容在未生成完成前总长度是不可知的。因此需要先缓存生成的内容,再计算总长度填充到Content-Length,再发送整个数据内容。这样显得不太灵活,而使用分块编码则能得到改观。
分块传输编码允许服务器在最后发送消息头字段。例如在头中添加散列签名。
对于压缩传输传输而言,可以一边压缩一边传输。

3、格式

如果在http的消息头里Transfer-Encoding为chunked,那么就是使用此种编码方式。接下来会发送数量未知的块,每一个块的开头都有一个十六进制的数,表明这个块的大小,然后接CRLF("\r\n")。然后是数据本身,数据结束后,还会有CRLF两个字符。有一些实现中,块大小的十六进制数和CRLF之间可以有空格。
最后一块的块大小为0,表明数据发送结束。最后一块不再包含任何数据,但是可以发送可选的尾部,包括消息头字段。消息最后以CRLF结尾。

4、案例

技术分享

技术分享

二、编码发送

 

三、编码接收

 

HTTP协议扫盲(九 )HTTP1.1响应的Transfer-Encoding=chunked方式

原文:http://www.cnblogs.com/lexiaofei/p/7491148.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!