4

我创建了一个 HTTP 端点(Java 中的 REST、Spring Framework、Apache Tomcat),其中 HTTP 响应的标题为“Transfer-Encoding: chunked”。我不知道它是由servlet还是服务器创建的。

我不希望端点响应该标头。是否可以强制它以免发送该标头?

4

1 回答 1

11

这可能是因为响应大于响应缓冲区而创建的,因此在响应完成之前强制刷新运行时。由于标头必须在响应之前发送并且Content-Length标头是未知的,因此Transfer-Encoding: chunked改为设置。

您可以设置 Tomcat 连接器的输出缓冲区大小:请参阅此处socketBuffer,标准和socket.appWriteBufSizeNIO的属性。这设置了整个 servlet 容器的缓冲区大小,可能不是您想要的。

您可以使用 servlet 过滤器拦截需要更大缓冲区的特定 URL,然后使用response.setBufferSize(NNN).

于 2013-09-23T13:37:24.783 回答