1

我正在将一个客户的应用程序迁移到 Tomcat 6。在测试期间,我们发现他们的一些客户希望响应总是被分块,即 Transfer-encoding: chunked。但是,Tomcat 并不总是使用分块编码,有时使用 Content-Length 来代替,我假设是因为响应大小足够小,以至于在发送标头时它知道整个长度。

我已经看到了大量关于如何禁用分块编码的问题/答案,但我遇到了相反的问题。我知道在每个响应中强制分块编码并不理想,并且客户端应该与 http1.1 规范完全兼容并接受任何一种编码,但我只是想找出是否有任何简单的配置可以做以启用所需的行为。

我单独使用 Tomcat 和标准的 http 连接器。我查看了连接器属性并玩弄了 bufferSize 和 socketBuffer ,但没有运气。

我能做些什么来强制分块响应吗?

4

1 回答 1

3

以防万一其他人遇到这种情况,我找到了一个 hacky 解决方案。在写入任何内容之前,我会立即刷新输出流。这迫使 Tomcat 立即发送响应标头并使用分块编码。我知道这很糟糕,因为这意味着它会在我完成处理之前立即发送一个 200 状态代码,但这是我能找到强制分块编码的唯一方法。

于 2013-03-13T16:34:44.293 回答