客户端发送请求后,服务器返回chunked编码的字节数组,现在要在客户端处理这些数据,问怎样在javascript中处理chunked编码啊?急用,麻烦各位了!
解决方案 »
- 想做一个基于web的绘图程序,有没有js技术、类库啥的推荐一下
- 163相册封面截取 JS或JQ
- 在线求帮忙
- 寻求JS代码,实现把指定层显示在最上边,后面的主体变成不可更改
- 有10个数字,拿出任意两个比较都不相同。该如何写。用JS,请朋友指点
- 对于梅花雪的树,想增加Checkbox功能,以及动态增加、修改、删除结点功能,如何实现?请教!
- javascript判断email的输入
- 向高手学习!!!请教怎么用javascript控制<input type=text>的属性!~!在线等待!!
- 有点着急!form提交打开新窗口的问题
- JScript+asp怎么样写呢???
- javascript高级程序设计,高手来看看。。。
- 如何通过鼠标点击获取表单元素?
通常,HTTP应答消息中发送的数据是整个发送的,Content-Length消息头字段表示数据的长度。数据的长度很重要,因为客户端需要知道哪里是应答消息的结束,以及后续应答消息的开始。然而,使用分块传输编码,数据分解成一系列数据块,并以一个或多个块发送,这样服务器可以发送数据而不需要预先知道发送内容的总大小。通常数据块的大小是一致的,但也不总是这种情况。如果一个HTTP消息(请求消息或应答消息)的Transfer-Encoding消息头的值为chunked,那么,消息体由数量未定的块组成,并以最后一个大小为0的块为结束。
每一个非空的块都以该块包含数据的字节数(字节数以十六进制表示)开始,跟随一个CRLF (回车及換行),然后是数据本身,最后块CRLF结束。在一些实现中,块大小和CRLF之间填充有白空格(0x20)。
最后一块是单行,由块大小(0),一些可选的填充白空格,以及CRLF。最后一块不再包含任何数据,但是可以发送可选的尾部,包括消息头字段。
消息最后以CRLF结尾。例子HTTP/1.1 200 OK
Content-Type: text/plain
Transfer-Encoding: chunked25
This is the data in the first chunk1C
and this is the second one3
con
8
sequence
0解码 示意
"This is the data in the first chunk\r\n" (37 字符 => 十六进制: 0x25)
"and this is the second one\r\n" (28 字符 => 十六进制: 0x1C)
"con" (3 字符 => 十六进制: 0x03)
"sequence" (8 字符 => 十六进制: 0x08)最终 结果
This is the data in the first chunk
and this is the second one
consequenceJS的话应该是用调用XMLHttpRequest 对象发请求。如果服务器http响应200状态那么 XMLHttpRequest.responseText中应该是解好码的数据,不需在另外解码。