如何禁用传输编码:chunked websphere

Posted

技术标签:

【中文标题】如何禁用传输编码:chunked websphere【英文标题】:How to disable transfer-encoding:chunked websphere 【发布时间】:2009-09-10 19:23:14 【问题描述】:

我们有一个使用基于 IBM JAX-RPC 的 Web 服务在 Websphere 6.1 上运行的 Web 服务。客户端发送的请求没有传输编码的 HTTP 标头:分块(它们指定内容长度)。来自 websphere 的响应始终在 HTTP 标头中包含 transfer-encoding:chunked。我认为这将导致响应以多个块发送。在服务请求者和服务提供者被许多中介(如防火墙和负载均衡器 (T1/F5))隔开的系统中,这种分块可能会导致显着延迟。

link 和 link 谈论请求分块,但没有提及任何响应。

有没有办法将 websphere 配置为不在 HTTP 标头的响应中添加 transfer-encoding:chunked?

【问题讨论】:

【参考方案1】:

在 websphere 中,块大小由 web 容器入站通道的传输链中的“写入缓冲区大小”控制。从他们的文档中:


如果需要多次写入来处理对客户端的响应,请将为写入缓冲区大小参数指定的值更改为更适合您的客户端的值。写入缓冲区大小参数控制 Web 容器在发送请求以进行处理之前缓冲的每个线程的最大数据量。默认值为 32768 字节,这对于大多数应用程序来说已经足够了。如果响应的大小大于写入缓冲区的大小,则响应被分块并在多次 TCP 写入中写回。

【讨论】:

【参考方案2】:

我不认为您可以配置 Websphere 来执行此操作,但此外,这无关紧要。我建议阅读 RFC 2616 关于分块编码的内容;它没有做你认为它做的事情。

【讨论】:

引用 RFC 2616 定义:“分块编码修改消息的主体,以便将其作为一系列块传输......”。这是否意味着响应分块发送?

以上是关于如何禁用传输编码:chunked websphere的主要内容,如果未能解决你的问题,请参考以下文章

HTTP协议之chunk编码(分块传输编码)

HTTP协议之chunk编码(分块传输编码)

如何使用带有“传输编码:分块”的 winhttp api

ttp响应chunked格式分析

如何使用 HttpClient 在 ASP.Net C# 中禁用分块传输编码

HTTP协议的chunked编码