我在Tomcat 6.0.29服务器和JDK 1.6上运行了一个web应用程序。
当我向客户端发送响应时,Tomcat将
Transfer-Encoding: chunked
在响应大小> 8KB的标题中。对于< 8KB的响应,它发送
Content-Length :
我知道Chunked encoding是处理批量响应的首选方法,但是我们的客户端不想更改他们的代码(因为它分布在所有服务器上)。
如何禁用Tomcat中的块编码?
我可以在Tomcat中禁用HTTP/1.1并启用HTTP/1.0 (不确定如何做到这一点)
我尝试了以下几项,但没有成功:
server.xml
中,我设置了bufferSize =" 65536"
连接器port="8080“protocol="HTTP/1.1”connectionTimeout=20000“bufferSize="65536”socketBuffer="65536“redirectPort="8443”/>
发布于 2011-10-26 16:39:55
我能让它工作的唯一方法是在响应上设置BufferSize。
response.setBufferSize()
设置响应大小的Content-Length
头。一旦响应大小超出了bufferSize,它将返回到Transfer-Encoding: Chunked
。缓冲区大小应设置为适当的值。将其设置为更高的值将在刷新它之前缓冲内存中的所有响应。因此,应该将该值设置为乐观大小。
我的客户端很少依赖于Content-Length
响应头。我必须将其设置为向后兼容性。默认情况下,Tomcat缓冲区大小设置为8K (我认为对于Weblogic/Websphere,这是32K字节)。
发布于 2011-10-24 20:01:07
据我所知,要禁用Tomcat中的块输出,您必须在servlet中提供一个内容长度头。
发布于 2015-02-28 21:22:38
向响应添加一个连接:关闭报头,可以防止Tomcat添加传输-编码:块头。
https://stackoverflow.com/questions/6299432
复制相似问题