Каков канонический метод для HTTP-клиента, который указывает HTTP-серверу отключить ответы gzip?
Я думал, что это простой поиск в Google, но, видимо, я ошибаюсь.
Я видел, что вы должны предоставить:
Accept-Encoding: gzip;q=0,deflate;q=0
в заголовках запроса. Однако в статье, в которой было предложено также отметить, что прокси-серверы обычно игнорируют этот заголовок. Кроме того, когда я передал его nginx, он все еще сжал тело сообщения ответа.
http://forgetmenotes.blogspot.ca/2009/05/how-to-disable-gzip-compression-in.html
Итак, как я могу сообщить веб-серверу об отключении сжатия в теле сообщения ответа?
Ответы
Ответ 1
Вы хотите, чтобы кодировка была полностью отключена?
Затем пропустите заголовок Accept-Encoding внутри заголовков HTTP-запросов.
Вы хотите, чтобы в ответе HTTP отсутствовало сжатие gzip?
Затем пропустите gzip из списка значений в заголовке http-запроса.
Вы хотите определить приоритеты различных методов сжатия, поддерживаемых серверами? затем используйте разные значения между 0 и 1 вместе с аргументом q для каждого значения в заголовке HTTP-запроса Accept-Encoding. (В настоящее время вы используете противоречивое значение и указываете по весу = 0, что вы не знаете, как вы справитесь, но вы хотите, чтобы ответ был закодирован так или иначе)
Ответ 2
Многие веб-серверы игнорируют параметр "q". Сжатая версия статического ресурса часто кэшируется и возвращается всякий раз, когда запрос принимает ее. Чтобы избежать использования сжатых ресурсов, используйте
Accept-Encoding: identity
Сервер не должен служить вам сжатым представлением ресурса в этом экземпляре. Также не должно быть прокси. Это принятая по умолчанию кодировка, если она не указана, но ваш клиент может добавить значение по умолчанию, которое принимает gzip, поэтому явно предоставление "identity" должно сделать трюк.
Ответ 3
Я думаю, что этот мод для apache
http://httpd.apache.org/docs/2.2/mod/mod_deflate.html (2)
И это для Nginx
http://wiki.nginx.org/HttpGzipModule (1)
Похоже на то, что вам нужно, в зависимости от того, какой сервер вы планируете использовать. Остальное зависит от вас!
Обратите внимание, что модуль nginx позволяет отключить декомпрессию:
[edit] gzip
Syntax: gzip on | off
Default: off
Context: http
server
location
if in location
Reference: gzip
Enables or disables gzip compression.
И работа с прокси:
[edit] gzip_proxied
Syntax: gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...
Default: off
Context: http
server
location
Reference: gzip_proxied
It allows or disallows the compression of the response for the proxy request in the dependence on the request and the response. The fact that, request proxy, is determined on the basis of line "Via" in the headers of request. In the directive it is possible to indicate simultaneously several parameters:
off - disables compression for all proxied requests
expired - enables compression, if the "Expires" header prevents caching
no-cache - enables compression if "Cache-Control" header is set to "no-cache"
no-store - enables compression if "Cache-Control" header is set to "no-store"
private - enables compression if "Cache-Control" header is set to "private"
no_last_modified - enables compression if "Last-Modified" isn't set
no_etag - enables compression if there is no "ETag" header
auth - enables compression if there is an "Authorization" header
any - enables compression for all requests
[edit] gzip_types
С наилучшими пожеланиями!
Источники:
1) http://forum.nginx.org/read.php?11,96472,214303
2) http://httpd.apache.org/docs/2.2/mod/mod_deflate.html#inflate (Декомпрессия выходного файла раздела)