博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP协议的chunked编码
阅读量:4324 次
发布时间:2019-06-06

本文共 821 字,大约阅读时间需要 2 分钟。

一般情况HTTP的Header包含Content-Length域来指明报文体的长度。如:

     

     有时候服务生成HTTP回应是无法确定消息大小的,比如大文件的下载,或者后台需要复杂的逻辑才能全部处理页面的请求,这时用需要实时生成消息长度,服务器一般使用chunked编码。

     在进行Chunked编码传输时,在回复消息的Headers有transfer-coding域值为chunked,表示将用chunked编码传输内容。使用chunked编码的Headers如下(可以利用FireFox的FireBug插件或HttpWatch查看Headers信息,HttpWatch还可以查看chunked的个数):

    

     chunked采用以下方式编码:

     Chunked-Body=*chunk

"0"CRLF
footer
CRLF
chunk=chunk-size[chunk-ext]CRLF
chunk-dataCRLF
hex-no-zero=<HEXexcluding"0">
chunk-size=hex-no-zero*HEX
chunk-ext=*(";"chunk-ext-name["="chunk-ext-value])
chunk-ext-name=token
chunk-ext-val=tokenquoted-string
chunk-data=chunk-size(OCTET)
footer=*entity-header

     编码使用若干个Chunk组成,由一个标明长度为0的chunk结束,每个Chunk有两部分组成,第一部分是该Chunk的长度和长度单位(一般不写),第二部分就是指定长度的内容,每个部分用CRLF隔开。在最后一个长度为0的Chunk中的内容是称为footer的内容,是一些没有写的头部内容。

转载于:https://www.cnblogs.com/MasterMonkInTemple/p/3252700.html

你可能感兴趣的文章
人人必知的10个 jQuery 小技巧
查看>>
【坦克大战】Unity3D多人在线游戏(泰课的坦克大战--旋转的螺丝钉)
查看>>
Android 开发BottomNavigationView学习
查看>>
unix-poll
查看>>
anaconda+youcompleteme
查看>>
HLS: High-Level Synthesis Operators
查看>>
消息队列Rabbit安装
查看>>
在 EF 中只对 日期(不包括时间)进行比较的方法
查看>>
C#关于等待窗体(转)
查看>>
CockroachDB学习笔记——[译]Cgo的成本与复杂性
查看>>
JS数组经典冒泡排序
查看>>
【leetcode】Trapping Rain Water(hard)
查看>>
关键字 static
查看>>
11. Container With Most Water
查看>>
别人抢红包,我们研究一下红包算法
查看>>
泛型的一些问题
查看>>
PHP与正则表达式 2 :一些修饰符与preg_match_all
查看>>
压八位高精度 高精操作大全
查看>>
进程、线程、协程和GIL(二)
查看>>
dockerfile语法规则
查看>>