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

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

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

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

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

1 ответ

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

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

Другие вопросы по тегам