Content-Length应该是精确的, 否则就会导致异常 (特别地, HTTP1.0中这个字段可有可无).
Content-Length首部指示出报文中实体主体的字节大小....Content-Length是如何工作的
Content-Length使用十进制的数字表示了消息的长度, 服务端/客户端通过它来得知后续要读取消息的长度.
?
?...Transfer-Encoding: chunked是如何工作的
接下来我们用一个下载文件的例子?, 来探讨Transfer-Encoding: chunked是如何工作的. 服务端代码如下:
?...在wireshark中可以很清晰地看到chunked的数据, 其结构大致是: 返回的消息被分为多个数据块, 每个数据块有两部分, 长度 + 数据, 这两部分都以CRLF(即\r\n)结尾....例如, 当需要用从数据库中查询获得的数据生成一个大的HTML表格、需要传输大量的图片等.
结语
Content-Length如果存在且生效, 必须是正确的, 否则会发生异常.