如果我检查“内容长度”标题,它是不是 100% 准确?
Posted
技术标签:
【中文标题】如果我检查“内容长度”标题,它是不是 100% 准确?【英文标题】:If I check the "content-length" header, is it 100% accurate?如果我检查“内容长度”标题,它是否 100% 准确? 【发布时间】:2012-02-04 16:15:25 【问题描述】:如果不是,准确度如何?
我想在下载之前知道图片的大小。
【问题讨论】:
【参考方案1】:它应该而且通常是准确的。然而,Web 服务器完全有可能报告不正确的内容长度,尽管这显然不会经常发生(我记得旧版本的 apache 会重新调整大于 2GB 的文件的无意义内容长度)。
提供 Content-Length 标头也不是强制性的
【讨论】:
【参考方案2】:如果内容长度不正确,浏览器可能会无情。
我遇到了一个问题here,服务器有时返回的内容长度太短。浏览器就是不会处理它。
所以是的,您可以假设服务器正确设置了内容长度,基于浏览器客户端工作在相同假设上的知识。
【讨论】:
【参考方案3】:Content-Length 可以由服务器代码(或)由 apache 层本身发送。 当代码不发送时,apache会发送它。
当客户端连接并关闭套接字时存在已知的客户端崩溃 发送的内容长度更小。
由于图像通常不是由代码在运行时生成的,因此您可以依赖它。
【讨论】:
Apache 只为小的响应体添加 Content-Length。来自 (***.com/a/9728553/468921) 的源 cmets。【参考方案4】:HTTP Content-length 标头是否格式错误?是的。 您是否应该相信它是消息正文大小的公平表示?是的。
【讨论】:
【参考方案5】:最好是 - 否则为什么要拥有它?
如果无法提前可靠确定,则根本不应该由服务器提供服务。 (例如,在处理动态生成的文本时,可能会使用 chunked transfer encoding 之类的东西——当 HTTP 标头写在流的开头时,它不需要知道最终长度。)
【讨论】:
因为用户期望一个进度条并且内容长度并不总是提前知道的。当指定的长度小于传递的内容时,浏览器通常会出错,但当长度估计过高时,浏览器会优雅地接受。好文章在这里bit.ly/1yjXciq以上是关于如果我检查“内容长度”标题,它是不是 100% 准确?的主要内容,如果未能解决你的问题,请参考以下文章