Apache Webserver: проверьте, поддерживается ли декомпрессия
С SetInputFilter DEFLATE Я могу заставить апач распаковать входящие сообщения. Есть ли способ узнать у веб-сервера, поддерживает ли он распаковку входящих запросов. Я ожидаю, что конкретная информация заголовка для этого. Единственная информация HEADER, о которой я знаю, это: accept-encoding (для запросов, afaik) и content-encoding (которая только сообщает клиенту, что ответ закодирован правильно?).
2 ответа
Если специально не настроено иначе, современные браузеры и веб-серверы автоматически обрабатывают согласование схемы сжатия. Обычно выполняется за 2 шага, в результате чего клиент объявляет поддерживаемые схемы сжатия, а сервер отвечает с использованием схемы сжатия, которую поддерживают оба.
Смотрите эту статью для справедливого обращения.
Если вы хотите сначала "проверить" его, вы можете извлечь любой ресурс с сервера и проанализировать значение "Content-Encoding" из заголовков ответа.
Документация Apache для mod_deflate объясняет это очень четко:
Декомпрессия ввода
Модуль mod_deflate также предоставляет фильтр для распаковки тела сжатого gzip запроса. Чтобы активировать эту функцию, вы должны вставить фильтр DEFLATE в цепочку входных фильтров, используя SetInputFilter или AddInputFilter, например:
<Location "/dav-area"> SetInputFilter DEFLATE </Location>Теперь, если запрос содержит
Content-Encoding: gzipзаголовок, тело будет автоматически распаковано. Лишь немногие браузеры имеют возможность gzip тела запросов. Однако некоторые специальные приложения действительно поддерживают сжатие запросов, например некоторые клиенты WebDAV.
Это означает, что, установив фильтр ввода в DEFLATE, apache будет искать заголовки запроса для Content-Encoding: gzip и будет распаковывать ввод только при наличии этого заголовка.