存档

2013年8月 的存档

http chunked记录

2013年8月22日 没有评论

前几天被人给问到了chunked,电话中怎么都没有听清是什么单词,以为是 truck ,心道前端里哪里有这个词汇,被人家狠狠鄙视了一把。电话挂了后才各种搜索,终于知道原来人家说的不是truck,而是 chunked 。

这是做什么用的呢。在服务器端需要做长时间处理例如一个耗时操作、大文件下载等行为时,可以先返回一些数据,并告诉客户端,这只是部分数据。客户端就可以先拿这部分数据做些事情,比如 UI 呈现等等。

查看的方式也很简单,就是看response 的 header ,里面有 Transfer-Encoding ,其值为 chunked。报文体据说是由四段chunk、last-chunk、trailer和结束符组成。当每个chunk 以0开头,则表示长度为0,是最后一个chunk,既last-chunk。结束符号就是CRLF咯。每个chunk 由2部分组成,并由CRLF分隔,第一部分是长度和长度单位(单位一般不写),另外一部分是具体的内容。长度是用的16进制编码的。

对于后端来说,我看网上有说法是,Response.Write方法即是,我更倾向于在Write方法后使用的 Response.Flush()方法。

分类: 一句话 标签: ,