Каков канонический метод для 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 (Декомпрессия выходного файла раздела)