| |
    最近接触到一个Transfer-Encoding: chunked相关的问题,原来http在应答时,有两种方式来标示应答body的长度,一种就是用content-length方式直接指明body长度,还有一种就是chunk模式。

    在这种模式下,应答正文分段发送,每个chunk由长度段和数据段组成,每个段均由\r\n结束,当服务器发送完数据后,发送一个长度为0的chunk,即:0\r\n\r\n。其中长度段为十六进制表示。


举例一个长度11的chunk:

b\r\n12345678901\r\n



    chunk模式多用于结果长度未定的情况下,比如用php输出一个长字符串的时候,就默认使用的chunk模式,当然可以通过header来指定使用content-length模式。不过需要自己算出应答body的长度。

    chunk模式的一个好处是可以进行分段压缩,服务器对每个chunk进行gzip压缩发送给客户端。


Tags:
by snooda | 分类: lighttpd | 评论(0) | 引用(0) | 阅读(5161)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]