Как изменить заголовок ответа Tomcat с помощью клапанов?

Мне нужно минимизировать заголовок ответа Tomcat. Устройство, отправляющее запросы на tomcat, очень ограничено в памяти, поэтому я хочу удалить заголовки Date, Server и Content-Type. Я установил свой собственный клапан с крючком. Хук вызывается, но кажется, что невозможно удалить дату и заголовок сервера.

Сначала я выполнил свой метод только тогда, когда ActionCode == COMMIT - не сработало. Странный. Итак, я просмотрел исходный код Tomcat: в методе action () Tomcat AbstractHttp11Processor, когда ActionCode==COMMIT

  • prepareResponse() (который устанавливает заголовки сервера и даты), а затем
  • он записывает заголовки в выходной буфер.

Так что перехватить невозможно. Когда я устанавливаю заголовки до вызова этого действия, они перезаписываются в AbstractHttp11Processor. Когда я после этого установлю заголовки, они будут проигнорированы, так как они уже были записаны в буфер. Кажется, мой единственный шанс - сбросить выходной буфер и записать заголовки в буфер или есть лучший способ? И возможно ли это вообще?


person Kapper    schedule 09.10.2013    source источник


Ответы (1)


Заголовок даты удалить нельзя. Это требуется спецификацией HTTP 1.1. См. RFC2626, раздел 14.18.

В настоящее время нет возможности отключить заголовок сервера, но если вы откроете запрос на улучшение для Tomcat, я рассмотрю возможность добавления опции, чтобы полностью отключить его.

person Mark Thomas    schedule 10.10.2013
comment
Кто-нибудь открывал запрос на улучшение, если да, #? Кроме того, сервер не требуется для HTTP 1.1? - person Josh Unger; 12.02.2014
comment
Запросов на улучшение не поступало. Заголовок сервера не является обязательным согласно RFC 2616. - person Mark Thomas; 05.03.2014