(spring boot、cxf、tomcat)内容长度与传输编码:分块?
我正在努力解决一个问题。http响应头:(spring boot、cxf、tomcat)内容长度与传输编码:分块?,tomcat,soap,spring-boot,cxf,transfer-encoding,Tomcat,Soap,Spring Boot,Cxf,Transfer Encoding,我正在努力解决一个问题。http响应头:传输编码:分块 我们在spring boot+嵌入式tomcat中有一个CXF-SOAP Web服务 SOAP响应得到一个内容长度头,并且没有传输编码。。。。 我想这很正常吧 不幸的是,我们有一些遗留客户端黑客, 这似乎只适用于传输编码:分块和无内容长度 有没有办法强制服务器应用程序响应传输编码:chunked 究竟是什么决定了生成哪种响应格式 它是可配置的吗?通过在响应时设置缓冲区大小 response.setBufferSize()设置响应大小的内容长
传输编码:分块
我们在spring boot+嵌入式tomcat中有一个CXF-SOAP Web服务
SOAP响应得到一个内容长度
头,并且没有传输编码
。。。。
我想这很正常吧
不幸的是,我们有一些遗留客户端黑客,
这似乎只适用于传输编码:分块
和无内容长度
有没有办法强制服务器应用程序响应传输编码:chunked
究竟是什么决定了生成哪种响应格式
它是可配置的吗?通过在响应时设置缓冲区大小 response.setBufferSize()设置响应大小的内容长度标题。一旦响应大小超过缓冲区大小,它就会退回到传输编码:Chunked。缓冲区大小应设置为适当的值。将其设置为更高的值将在刷新之前缓冲内存中的所有响应。因此,应将该值设置为乐观大小 默认情况下,Tomcat缓冲区大小设置为8K
其他选项:您可以为您的服务添加响应过滤器,并在所需的集合标题中添加响应过滤器。通过设置响应的缓冲区大小 response.setBufferSize()设置响应大小的内容长度标题。一旦响应大小超过缓冲区大小,它就会退回到传输编码:Chunked。缓冲区大小应设置为适当的值。将其设置为更高的值将在刷新之前缓冲内存中的所有响应。因此,应将该值设置为乐观大小 默认情况下,Tomcat缓冲区大小设置为8K
其他选项:您可以为您的服务添加响应过滤器,并在所需的设置标头中添加响应过滤器。服务器应用程序将根据请求http标头以您希望的方式响应 如果请求http标头包含:
Accept-Encoding: chunked
而且只有分块
,服务器应用程序才会响应标题和内容传输编码:分块
因此,如果无法发出指示客户端功能的正确http请求,则可以添加反向代理,通过更改或添加
Accept Encoding:chunked
头来修改请求。服务器应用程序将根据请求http头的不同,以您希望的方式响应
如果请求http标头包含:
Accept-Encoding: chunked
而且只有分块
,服务器应用程序才会响应标题和内容传输编码:分块
因此,如果无法发出指示客户端功能的正确http请求,可以添加反向代理,通过更改或添加Accept Encoding:chunked
头来修改请求