在静态文件上使用 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.
来解决这个问题
我有你常用的静态站点,服务器会在其中抓取 .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.