http - 如何删除传输编码 : chunked in the HTTP response

标签 http rest servlets chunked transfer-encoding

我创建了一个 HTTP 端点(Java 中的 REST、Spring Framework、Apache Tomcat),其中 HTTP 响应的标题为“Transfer-Encoding: chunked”。不知道是servlet创建的还是服务器创建的。

我不希望端点响应该 header 。 是否可以强制它不发送该 header ?

最佳答案

这可能是由于响应大于响应缓冲区而创建的,因此在响应完成之前强制运行时刷新。由于 header 必须在响应之前发送,并且 Content-Length header 未知,因此它设置了 Transfer-Encoding: chunked

您可以为 Tomcat 连接器设置输出缓冲区大小:see here ,标准的 socketBuffer 属性和 NIO 的 socket.appWriteBufSize 属性。这会为整个 servlet containe 设置缓冲区大小,可能不是您想要的。

您可以使用 servlet 过滤器拦截需要更大缓冲区的特定 URL,并使用 response.setBufferSize(NNN)

关于http - 如何删除传输编码 : chunked in the HTTP response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18960394/

相关文章:

python - 从 asyncio StreamReader 读取

java - linkedInDistributionTarget 是必需的,即使它为空

node.js - 单元/集成测试 Express REST API、mongoose、mocha、sinon、chai、supertest

java - 根据登录的用户将JSP页面重定向到另一个JSP页面

internet-explorer - Internet Explorer http 引用问题

http - 有人知道 vibe.d 在提供静态文件时是否支持 HTTP 字节范围吗?

java - 我可以在 servlet 中使用 Thread.sleep 为本地服务器添加随机延迟来应答我的 api 调用吗?

java - HttpServletRequest 对象的字段会延迟截断。为什么?

php - PHP 中的异步请求

rest - 如何将 JSON 数组解析为结构