Http 分块传输编码 Transfer-Encoding: chunked
2016-07-07 18:50
357 查看
定义
分块编码就是把报文分割为若干大小已知的块,一次发送到接收端。
常见使用场景
长连接
发送时无法获取主体长度
其他传输场景
1、非长连接 即发送完数据后就断开连接
接收端读取到EOF(-1)即读取完毕
2、长连接
固定主体长度,通过响应头中的Content-Length决定是否读取结束。
块数据报文结构
Http响应
第一块(十六进制标示的分块大小 27–>39)
第二块(十六进制标示的分块大小 26–>38)
最后一块(以0结尾)
拖挂(如果在响应首部中有定义)
拖挂可以包含附带的首部字段,他们的值在报文开始的时候可能是无法确定的(例如,必须要先生成主体结构)
分块编码就是把报文分割为若干大小已知的块,一次发送到接收端。
常见使用场景
长连接
发送时无法获取主体长度
其他传输场景
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>
拖挂可以包含附带的首部字段,他们的值在报文开始的时候可能是无法确定的(例如,必须要先生成主体结构)
相关文章推荐
- python通过get方式,post方式发送http请求和接收http响应-urllib urllib2
- http://www.myexception.cn/program/767123.html
- 网络库crash以及boost asio strand dispath分析
- CNN 卷积神经网络-- 残差计算
- CentOS7 监控进程网络流量工具安装
- 使用Apache HTTP发送POST/GET请求
- Android 文件名含有空格/中文/特殊符号 导致网络下载失败
- R语言实现人工神经网络预测
- 深度学习:网络的编程模式比较
- 使用HttpURLConnection请求Gson网络解析数据
- 拒绝繁琐,Volley框架的简单封装
- Android 局部带阴影的网络加载框
- OpenSSL - 网络安全之数据加密和数字证书
- Android Http连接和TCP连接的区别
- ios在2g/3g/4g网络下的抓包方法
- 非常简单的OKhttp封装工具类
- fiddler4监听https
- BurpSuite拦截HTTPS请求
- SIP电话(一)之程控交换机-FreeSWITCH的使用总结
- 有线网络(网关等)和无线网络通信(蓝牙跳频通信等)讲解