Я разместил это при переполнении стека, но было высказано предположение, что здесь мне может повезти больше:
Раньше я не использовал deflate для кодирования веб-страниц, так что это новая область для меня, но когда я смотрю на новый трафик в ff, мой файл all.js теперь составляет 117 КБ из 427 КБ, так что, похоже, он работает здесь. Но в IE9 изменений нет. В моем заголовке ответа указано Content-Encoding: gzip в FF, но не в IE9.
вот мой .htaccess:
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>
Заголовок запроса для all.js в IE9:
Key Value
Request GET /all.js HTTP/1.1
Accept application/javascript, */*;q=0.8
Referer http://www.alexchapman.co.uk/
Accept-Language en-GB
User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding gzip, deflate
Host static.alexchapman.co.uk
Connection Keep-Alive
Cache-Control no-cache
Заголовок ответа для all.js в IE9:
Key Value
Response HTTP/1.1 200 OK
Date Tue, 28 Feb 2012 15:53:41 GMT
Server Apache/2
Last-Modified Tue, 28 Feb 2012 15:53:40 GMT
Accept-Ranges bytes
Cache-Control private
Expires Fri, 02 Mar 2012 03:53:41 GMT
Keep-Alive timeout=15, max=100
Connection Keep-Alive
Transfer-Encoding chunked
Content-Type text/javascript
Заголовок запроса для all.js в Firefox:
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-gb,en;q=0.5
Cache-Control: no-cache
Connection: keep-alive
Cookie: DELETED - this should not be sent and isnt sent with IE
Host: static.alexchapman.co.uk
Pragma: no-cache
Referer: http://www.alexchapman.co.uk/
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Заголовок ответа для all.js в Firefox:
Accept-Ranges: bytes
Cache-Control: private
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/javascript
Date: Tue, 28 Feb 2012 15:55:26 GMT
Expires: Fri, 02 Mar 2012 03:55:26 GMT
Keep-Alive: timeout=15, max=100
Last-Modified: Tue, 28 Feb 2012 15:55:26 GMT
Server: Apache/2
Transfer-Encoding: chunked
Vary: Accept-Encoding
Чтобы было ясно, это происходит не только с all.js - я использовал это в качестве примера, поскольку это самый большой файл, который выиграет от сжатия. Будем очень признательны за любые предложения относительно того, что я делаю неправильно.
**********ОБНОВИТЬ************
Мой хостинг-провайдер вернулся ко мне и сказал, что они могут подтвердить, что gzip и deflate включены и работают на моем сайте, они сказали, что проблема с Internet Explorer специфична для этого браузера, поэтому я рекомендую попробовать режим совместимости, поскольку это не вызвано нашими серверами.
Я знаю представление о совместимости в IE, и это должно помочь правильно отображать старые сайты, поэтому я не знаю, о чем они здесь говорят, и могу подтвердить, что это не влияет на сжатие файлов.
Мне кажется, я понял, что здесь происходит. Я скачал Wireshark и через него проверил сетевой трафик. Я боролся с этим, но я думаю, что теперь у меня есть - было бы здорово, если бы кто-нибудь мог подтвердить, что я сделал это правильно.
Глядя на файл all.js в качестве примера, я следил за потоком tcp для запроса в firefox и IE9. Оба заявили, что использовали шифрование gzip. Интересно, что общий объем разговора был другим. Ie9 - 268471 байт FF-120812 байт (оба меньше, чем несжатый файл).
Это примерно правильный размер файла, указанный в firebug. Но это половина размера файла, указанного в инструментах разработчика IE. Таким образом, похоже, что IE не только хуже работает с gzip, но и инструмент разработчика неверно сообщает, что он даже хуже, чем есть на самом деле. Если кто-нибудь сможет проверить этот результат или предложить объяснение, я приму их ответ.
IE9 не показывает Content-Encoding: gzip
заголовок, даже если запрос сжат с помощью gzip, поэтому не доверяйте MSIE при проверке, включено ли сжатие gzip.
Кроме того, остерегайтесь комбинации кодирования MSIE + TLS + gzip + chunked transfer, есть некоторые ошибки, например: https://support.microsoft.com/kb/871205
Не «ответ» как таковой, но mod_gzip отлично работает для меня (IE9 тоже). Моя конфигурация:
<IfModule gzip_module>
mod_gzip_on Yes
mod_gzip_item_include mime text/.*
mod_gzip_item_include mime application/xm.*
mod_gzip_item_include mime application/javascript
mod_gzip_item_include mime image/svg.*
mod_gzip_dechunk Yes
</IfModule>
Deflate и GZip - это почти одно и то же, gzip технически медленнее, хотя на современных компьютерах разницу можно спокойно игнорировать на стороне клиента и на стороне сервера, если вы кэшируете ответы (что невозможно для динамически генерируемых страниц).