0

我需要最小化 Tomcat 的响应头。向 tomcat 发送请求的设备在内存中非常有限,因此我想删除标头 Date、Server 和 Content-Type。我用动作挂钩设置了自己的阀门。钩子被调用,但似乎不可能删除日期和服务器标头。

ActionCode == COMMIT首先,我仅在- 不起作用时才执行我的方法。奇怪的。于是我查看了Tomcat源代码:在Tomcat的AbstractHttp11Processorwhen方法action()中ActionCode==COMMIT

  • prepareResponse()被调用(设置的服务器和日期标题),然后
  • 它将标头写入输出缓冲区。

所以无法拦截。当我在调用此操作之前设置标题时,它们会在AbstractHttp11Processor. 当我在那之后设置标题时,它们将被忽略,因为它们已经写入缓冲区。我唯一的机会似乎是重置输出缓冲区并将标头写入缓冲区还是有更好的方法?甚至有可能做到这一点吗?

4

1 回答 1

1

无法删除日期标题。它是 HTTP 1.1 规范所要求的。请参阅RFC2626,第 14.18 节

目前没有办法禁用服务器标头,但如果您打开针对 Tomcat 的增强请求,我将考虑添加一个选项以完全禁用它。

于 2013-10-10T09:34:48.850 回答