Как отключить заголовок ответа Content-Length с Apache? - PullRequest
3 голосов
/ 31 января 2011

Позвольте мне предвосхитить этот вопрос, заявив, что я хочу только временно отключить заголовок и полностью осведомлен о последствиях для браузеров, механизмов кэширования и т. Д., Если заголовок отсутствует.

Мне нужнопротестируйте поведение кэширования, когда заголовок Content-Length отсутствует в ответе HTTP.Есть ли способ отключить заголовок?

Моя первая попытка состояла в том, чтобы просто попытаться установить его на 0 с использованием PHP и header("Content-Length: 0", true);, но это не то же самое, что полное удаление заголовка из ответа.

Можно ли отключить / удалить заголовок?

1 Ответ

3 голосов
/ 08 февраля 2011

Добавление Content-Length - это нечто, помеченное в RFC 2616 (HTTP 1.1) как ДОЛЖНО.Это означает, что веб-серверы обычно разработаны так, чтобы не пропускать их.

Например, для HTTP-сервера Apache необходимо изменить modules / http / http_filters.c.Поиск Content-Length из исходного файла практически показывает, как принудительно сбросить его (подробнее рассмотрим строку 1255).Просто добавьте unset в конец цепочки фильтров, и все готово.

Другой вариант - использовать другой веб-сервер, кроме Apache, который либо легче модифицировать, либо не соответствует RFC 2616.,

...