Чтобы PUT
данные на сервер были сжаты, необходимо сжать тело запроса и установить Content-Encoding: gzip
заголовок. Сам заголовок должен быть несжатым. Это задокументировано в mod_deflate :
Модуль mod_deflate также предоставляет фильтр для распаковки тела сжатого gzip запроса. Чтобы активировать эту функцию, вы должны вставить фильтр DEFLATE в цепочку входных фильтров, используя SetInputFilter или AddInputFilter.
...
Теперь, если запрос содержит заголовок Content-Encoding: gzip, тело будет автоматически распаковано. Лишь немногие браузеры имеют возможность gzip тела запросов. Однако некоторые специальные приложения действительно поддерживают сжатие запросов, например некоторые клиенты WebDAV.
И статья, описывающая это здесь :
Итак, как вы это делаете? Вот реклама, опять же из исходного кода mod_deflate: работа только по основному запросу / без подзапросов. Это означает, что все тело запроса должно быть сжато gzip, если мы решили использовать это, невозможно сжимать только часть, содержащую файл, например, в составном запросе.
Отдельно браузер может запросить сжатие содержимого ответа сервера, установив Accept-Encoding
заголовок, как показано здесь :
GET /index.html HTTP/1.1
Host: www.http-compression.com
Accept-Encoding: gzip
User-Agent: Firefox/1.0
Это вернет сжатые данные в браузер.
you must compress the whole request, inclusive of header
. Однако заголовки http не должны быть сжаты . Единственное, что должно быть сжато (в полном объеме, как правильно написано в цитируемой вами статье), это тело http.