发送http头Transfer-Encoding: chunked的问题

事先不知道Content-Length的长度, 于是使用 Transfer-Encoding: chunked 字段, 发送下面这样的http响应信息给浏览器 , 为什么浏览器好像无法读取呢?

HTTP/1.1 200 OK\r\n
Transfer-Encoding: chunked\r\n
Content-type: text/html\r\n
\r\n
这里响应主体内容, 事先不知道长度
阅读 5.4k
1 个回答

并不会啊,好多网站都启用了gzip压缩,这种时候就是Transfer-Encoding: chunked,不会无法读取的,除非你传的数据有问题,chunked格式是给按块传的,每一块都是有大小的,以我们想要的发送实际结果是 1234567890这10个字节的话,最理想的结果就是这样的。

A
1234567890

0

如上面的, 1234567890,的前面单独有一行的A就表示接下来读10个字节,读完10字节后换行,开始读下一个块,最后一定有个大小为0的块用来表示已经读完了,如果你直接发个1234567890的话,换行的话,浏览器以为马上要发一个大小为 78187493520 字节的数据块过来

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题