gpt4 book ai didi

http-headers - 如何在 Tomcat 6 中禁用传输编码

转载 作者:行者123 更新时间:2023-12-04 01:03:04 24 4
gpt4 key购买 nike

我有一个在 Tomcat 6.0.29 服务器和 JDK 1.6 上运行的 Web 应用程序。

当我向客户端发送响应时,Tomcat 发送

Transfer-Encoding: chunked 

当响应大小 > 8KB 时,在 header 中。对于 <8KB 的响应,它发送
Content-Length : 

我明白 Chunked encoding是处理批量响应的首选方式,但是我们的客户不想更改他们的代码(因为它分布在所有服务器上)。

如何在 Tomcat 中禁用分块编码?

我可以在 Tomcat 中禁用 HTTP/1.1 并启用 HTTP/1.0(不知道我该怎么做)

我尝试了以下但没有成功:
  • server.xml 中的连接器标签中, 我设置 bufferSize =" 65536"
    Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    bufferSize="65536" socketBuffer="65536"
    redirectPort="8443" /&gt;
  • 在 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" />
  • 最佳答案

    我可以让它工作的唯一方法是在响应时设置 BufferSize。
    response.setBufferSize()设置 Content-Length响应大小的 header 。一旦响应大小超过 bufferSize,它将回退到 Transfer-Encoding: Chunked .
    缓冲区大小应设置为适当的值。将其设置为更高的值将在刷新之前缓冲内存中的所有响应。因此该值应设置为乐观大小。

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

    关于http-headers - 如何在 Tomcat 6 中禁用传输编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6299432/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com