服务器必须为每个响应块提供多大的大小?

What size does the server have to give to each response chunk?

如果我想配置我的个人服务器,以便根据 chunk rules 设置对某个请求的响应:每个服务器响应块的大小应该是多少?

例如,假设分块响应是一个长 HTML 页面或文件。

在这两种情况下你会如何表现?

来自RFC

This allows dynamically produced content to be transferred...

换句话说:内容长度未知时需要Transfer-Encoding: chunked

您的内容的长度可能大至 10Tb...但也可以小至 10 字节。没关系。卡盘的大小完全取决于您用来生成它们并随后阅读的算法。

假设您生成一串不同长度的消息,每秒一个字符。在这种情况下,您可以决定向客户端发送一个字节的卡盘。这样,客户端将能够在数据到达后立即使用数据。但是如果您的客户端不需要部分消息,那么您可能应该节省带宽并在您完成生成下一条消息时发送一个块。同样,信息的大小无关紧要。可以是2个字符,也可以是1000个。


再想一想,Transfer-Encoding: chunked 有一些使用已知大小数据的用例。但是随后您的问题变得过于广泛而无法回答。这取决于您的客户端代码、服务器代码、网络条件、数据属性、期望的用户体验等。

如果您有任何机会从网络角度询问最佳大小,那么只需发送 整个 文件 - 这是最好的选择。并在您的服务器上支持 Content-Range 而不是 Transfer-Encoding: chunked