Персональный
сайт
Игоря
Сысоева



sysoev.ru
mod_accel
mod_deflate
документация    
изменения    
скачать    
программирование
windows
freebsd
apache
pppd
unix
web

для писем

Модуль mod_deflate

 

07.08.2002

mod_deflate – это модуль и набор патчей для Apache, позволяющие сжимать ответ методами gzip или deflate. Модуль создан в 2001 году на основе патча для Apache 1.3.1, разработанного Дмитрием Хрусталёвым в 1998 году и использовавшегося на сервере www.rbc.ru. Дмитрий выполнил самую сложную часть – собственно сжатие ответа Apache. Мне достались существенно более простые задачи – преобразование основной части патча в модуль, корректная реализация сжатия результатов вызова функций ap_bprintf() и ap_vbprintf(), конфигурационные директивы, проверка уровня загрузки процессора, процедура установки и написание документации. Также я добавил метод deflate, после чего обнаружилось, что его использование нежелательно и поэтому он по умолчанию запрещён. Были и достаточно непростые задачи – такие, как определение условий, при которых Mozilla 0.9.1 и MSIE 4.x некорректно воспринимают сжатый ответ.

Сейчас mod_deflate работает на большинстве серверов Рамблера, в том числе и на www.rambler.ru, search.rambler.ru и mail.rambler.ru. Кроме того, модуль используется на серверах www.anekdot.ru, www.kaspersky.ru, на многих российских серверах и на нескольких зарубежных.

Последняя версия модуля – 1.0.14 и именно в ней учтены все известные мне проблемы. Эта версия работает с любой версией Apache, начиная с 1.3.12 и кончая последней на данный момент – 1.3.26. Однако, если по каким-либо причинам Вы не можете установить новую версию модуля, то при минимальных настройках:

DeflateEnable on
DeflateDisableRange "MSIE 4."
в подавляющем большинстве случаев должны работать все версии, начиная с 1.0.4.

Интересующие Вас вопросы Вы можете задать в списке apache-talk или мне лично.

Должен заметить, что mod_deflate никак не связан с одноимённым экспериментальным модулем в дистрибутиве Apache 2.0.

mod_deflate далеко не единственный способ сжать ответ HTTP-сервера. Для Apache существует модуль mod_gzip. Он не патчит Apache, однако, в отличие от mod_deflate, сжимающего ответ на лету, mod_gzip сохраняет ответ во временный файл, который затем сжимает.

В PHP 4.x и выше есть функция gzcompress(), а для mod_perl – модуль Apache::GzipChain, однако они позволяют сжимать только ответы соответствующих модулей. Microsoft IIS 5.0 умеет сжимать ответ методами gzip и deflate.

Yandex.ru умеет выдавать страницы с результатами поиска в сжатом виде. Что используется для сжатия, мне не известно, но, скорее всего, это собственный патч.

(C) Igor Sysoev
http://sysoev.ru