在静态文件上使用 Transfer-Encoding: chunked 是个好主意吗?

Is it a good idea to use Transfer-Encoding: chunked on static files?

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

我理解 Transfer-Encoding: chunked 对于动态服务器页面的重要性,因为它就是为此而设计的。加速可能非常令人难以置信。但是静态文件的速度提升是一样的吗? 当文件通过网络到达时,浏览器是否已经通过使用 Content-Length 的请求逐步呈现和获取?

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

简短回答:是的,浏览器会逐步呈现使用 Content-Length header 发送的内容。事实上,如果浏览器有 Content-Length header,它会做更少的计算,因为它预先知道文档有多长而不是必须解析文档以获取块信息。

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

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

分块编码通过允许服务器不必发送 Content-Length header.

来解决这个问题