Gzip или deflate?

Сжатие Gzip и Deflate

В одной из предыдущих статей о клиентской оптимизации” было упомянуто, что стоит сжимать контент при отдаче его браузеру. Это минимизирует трафик и ускоряет загрузку данных у клиента.

Существуют два стандартных метода сжатия контента Web серверами - Gzip и Deflate. В чем же разница и какой из них выбрать?

Давайте разберемся в том, что же из себя представляют эти методы сжатия. Gzip - это утилита сжатия и восстановления (декомпрессии) файлов, использующая алгоритм Deflate. Deflate - это алгоритм сжатия данных “без потерь”. Т.е. Gzip это и есть алгоритм deflate (c небольшим отличием). Различие между чистым сжатием Deflate и сжатием Gzip заключается только в том, что Gzip добавляет к результирующим данным небольшой заголовок, подпись и контрольную сумму.

Как результат, прямое сжатие Defalte даст скромный выигришь в скорости. Разница эта настолько невелика, что на современном оборудовании почти не ощутима. Тем не менее, при колосальных нагрузках, даже небольшой выигришь в производительности сэкономит Вам ресурсы.

Ниже приведен график сравнения методов сжатия на различном оборудовании:

Gzip и Deflate



Как видно из графика, различие проявляется только на более дрвенем оборудовании.

Удобным, в данном случае, решением обладает Web сервер Lighttpd и его модуль mod_compress. Он позволяет задать набор методов компрессии (опцией compress.allowed-encodings), а во время обработки запроса выберет наиболее приоритетный (который поддерживает клиент). Помимо двух основных этот модуль поддерживает еще и сжатие BZIP2 (актуален только для текстовых браузеров).

Apache httpd предоставляет модуль mod_deflate в стандартной поставке. Этот модуль позволяет выбирать из двух типов сжатия - Gzip либо Deflate.

Для сервера Nginx есть модуль ngx_http_gzip_module, который реализует сжатие только методом Gzip.

Google Bookmarks Digg I.ua Ru-marks Ruspace Zakladok.net Reddit delicious Technorati Yahoo My Web News2.ru БобрДобр.ru Memori.ru rucity.com

Статьи по теме

  1. wicharek
    18 Июнь 2009 в 13:04 | #1

    График сделан неудачно. Что здесь сравнивается с чем? Время компрессии/декомпрессии одного алгоритма на разном оборудовании? Нет, наоборот. Почему же тогда столбики сгруппированы именно таким образом?

  2. 18 Июнь 2009 в 20:36 | #2

    @wicharek
    Спасибо! Справедливое замечание, но текущий график показывает прежде всего ощутимую разницу более современного оборудования и то, что на нем оба метода работают практически одинаково.

  3. Дима
    25 Январь 2010 в 03:14 | #3

    Я тоже не сразу понял как этот график читать!
    Очень важно увидеть удельные величины, что бы можно было примерно оценивать выгоду на высоко нагруженных системах.

  1. Пока что нет уведомлений.