Включите mod_deflate для отправки Content-Encoding: gzip - PullRequest
6 голосов
/ 18 мая 2009

РЕДАКТИРОВАТЬ Я обнаружил, что проблема на самом деле php minify . Это отправляло дефлированный контент вместо Apache. Я найду больше об этом.

В соответствии с высокопроизводительными веб-сайтами , если я включу mod_deflate в Apache 2.x, добавив следующую строку, он должен отправлять gzipped / delfated контент: -

AddOutputFilterByType DEFLATE text/html text/css application/x-javascript

В книге также говорится, что gzip более эффективен, чем deflate.

Я включил в httpd.conf, добавив ту же строку. Но Apache отправляет Content-Encoding: deflate.

Я тестировал с CURL, используя: -

curl -i -H "Accept-Encoding: gzip" "http://192.168.1.33/s.js" >> e:\curl_log.txt

Возвращает «сжатый» контент. Но когда я посылаю команду: -

curl -i -H "Accept-Encoding: gzip, deflate" "http://192.168.1.33/s.js" >> e:\curl_log.txt

Возвращает «дефлированный» контент.

Итак, если браузер поддерживает дефлирование и сжатие, Apache send дефлирует. Как сказать Apache предпочитать gzip вместо deflate?

К вашему сведению: -

  • Я не смог найти ничего в: http://httpd.apache.org/docs/2.0/mod/mod_deflate.html.
  • Нет появления gzip в Апачский конф.
  • Сервер: Apache / 2.2.9 (Win32) PHP / 5.2.6
  • FF отправляет заголовок запроса как: «Accept-Encoding: gzip, deflate»

Ответы [ 3 ]

2 голосов
/ 24 марта 2011

Как я вижу причина уже найдена. Чтобы в дальнейшем помочь избавиться от возможных недоразумений:

  • mod_deflate, несмотря на то, что его имя в настоящее время поддерживает только gzip.

  • gzip более "эффективен" из-за следующего

deflate - несмотря на его название, следует использовать сжатие zlib (RFC 1950) (в сочетании со сжатием deflate (RFC 1951)), как описано в RFC 2616. Однако реализация в реальном мире между zlib, кажется, различается сжатие и (необработанное) сжатие с выдуванием [3] [4]. Из-за этой путаницы gzip позиционирует себя как более надежный метод по умолчанию (март 2011 г.).

gzip и zlib - это форматы файлов / потоков, которые по умолчанию оборачиваются вокруг deflate и, среди прочего, добавляют контрольную сумму, которая делает их более безопасными и немного медленнее. Увеличение размера, с другой стороны, не должно вызывать беспокойства.

Также см. HTTP_compression - Википедия

0 голосов
/ 18 мая 2009

Я подозреваю, что то, что вы используете для проверки, не отправляет ...

Accept-Encoding: gzip

... в заголовке запроса.

0 голосов
/ 18 мая 2009

См. http://httpd.apache.org/docs/2.0/mod/mod_deflate.html для всех кровавых подробностей - вы уверены, что у вас нет случаев no-gzip в других местах конфигурации? Что происходит, когда вы меняете свой «браузер», например используя wget с различными значениями для -U?

...