我创建了一个 HTTP 端点(Java 中的 REST、Spring Framework、Apache Tomcat),其中 HTTP 响应的标题为“Transfer-Encoding: chunked”。不知道是servlet创建的还是服务器创建的。
我不希望端点响应该 header 。 是否可以强制它不发送该 header ?
最佳答案
这可能是由于响应大于响应缓冲区而创建的,因此在响应完成之前强制运行时刷新。由于 header 必须在响应之前发送,并且 Content-Length
header 未知,因此它设置了 Transfer-Encoding: chunked
。
您可以为 Tomcat 连接器设置输出缓冲区大小:see here ,标准的 socketBuffer
属性和 NIO 的 socket.appWriteBufSize
属性。这会为整个 servlet containe 设置缓冲区大小,可能不是您想要的。
您可以使用 servlet 过滤器拦截需要更大缓冲区的特定 URL,并使用 response.setBufferSize(NNN)
。
关于http - 如何删除传输编码 : chunked in the HTTP response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18960394/