【问题标题】:How do disable Transfer-Encoding in Tomcat 6如何在 Tomcat 6 中禁用传输编码
【发布时间】:2011-09-12 01:38:31
【问题描述】:

我有一个在 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(不知道该怎么做)

我尝试了以下但没有成功:

  1. server.xml的连接器标签中,我设置了bufferSize =" 65536"

    Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           bufferSize="65536" socketBuffer="65536"
           redirectPort="8443" />
    
  2. 在 server.xml 中使用 NIOConnector,配置如下:

    <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
           connectionTimeout="20000"
           socket.directBuffer="false"
           socket.rxBufSize="25188"
           socket.txBufSize="43800"
           socket.appReadBufSize="32768"
           socket.appWriteBufSize="32768"
           socket.bufferPool="500"
           socket.bufferPoolSize="100000000"
           socket.processorCache="500"
           socket.keyCache="500"
           socket.eventCache="500"
           socket.tcpNoDelay="false"
           socket.soKeepAlive="true"
           socket.soTimeout="5000"
           redirectPort="8443" />
    

【问题讨论】:

    标签: http-headers tomcat6 chunked-encoding


    【解决方案1】:

    在响应中添加 [Connection: close] 标头可防止 Tomcat 添加 [Transfer-Encoding: chunked] 标头。

    【讨论】:

      【解决方案2】:

      我可以让它工作的唯一方法是在响应时设置 BufferSize。

      response.setBufferSize() 设置响应大小的Content-Length 标头。一旦响应大小超过 bufferSize,它将回退到Transfer-Encoding: Chunked。 缓冲区大小应设置为适当的值。将其设置为更高的值将在刷新之前缓冲内存中的所有响应。所以这个值应该设置为一个乐观的大小。

      我的客户很少依赖Content-Length 响应标头。我必须设置它以实现向后兼容性。默认情况下,Tomcat 缓冲区大小设置为 8K(我认为对于 Weblogic/Websphere,这是 32K 字节)。

      【讨论】:

        【解决方案3】:

        据我所知,要在 Tomcat 中禁用分块输出,您必须在 servlet 中提供内容长度标头。

        【讨论】:

        • 我不想以编程方式设置 Content-Length 标头。我希望“bufferSize”或“socketBuffer”都能发挥作用。它们都不起作用。
        • 我很确定这是让它与 tomcat 一起工作的唯一方法。
        猜你喜欢
        • 2014-07-01
        • 2015-06-15
        • 1970-01-01
        • 1970-01-01
        • 2013-08-02
        • 2023-03-14
        • 2012-02-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多