使用Transfer-Encoding是一个好主意:对静态文件进行分块?

时间:2015-05-10 13:03:52

标签: html http transfer-encoding

我有你常用的静态站点,服务器抓取.html文件并发送它们。

我理解Transfer-Encoding: chunked对动态服务器页面的重要性,因为它就是它的设计目标。加速可能非常不可思议。但静态文件的速度增加是否相同? 浏览器是否已逐步呈现&使用Content-Length的请求获取,因为文件通过网络到达?

我有一些非常庞大的HTML(百页范围内的文档),因此渐进式HTML处理至关重要。 (有点像WHATWG如何提供单页单页HTML5规范。)

1 个答案:

答案 0 :(得分:5)

简短回答:是的,浏览器会逐步呈现使用Content-Length标头发送的内容。实际上,如果浏览器具有Content-Length标头,则浏览器的计算量会少一些,因为它预先知道文档需要多长时间而不必解析文档中的块信息。

必须在发送任何内容之前发送Content-Length标头(如果有)。因此,服务器必须在发送任何文档内容之前知道文档的长度。

对于仅动态内容,分块编码更快。 如果服务器只能使用Content-Length标头,那么对于动态内容,它需要在发送任何内容之前完成文档生成。这可能导致客户端等待,可能很长时间没有看到任何文档。

Chunked编码通过允许服务器不必发送Content-Length标头来解决这个问题。