Компоненты Gzip

В статье "Gzip Components" автор говорит о компонентах сжатия с целью компрессии страницы и уменьшения её размера.

Время, необходимое для передачи HTTP-запроса и ответа по сети, может быть значительно сокращено, благодаря решениям, найденным интерфейсными инженерами. Правда состоит в том, что пропускная скорость, поставщик услуг сети Интернет, близость к абонентским пунктам пиринга конечного пользователя и т.д. находятся вне контроля команды разработчиков. Но есть другие переменные, влияющие на скорость отклика. Сжатие уменьшает время отклика за счет уменьшения размера HTTP-ответа.

Начинаясь с HTTP/1.1, веб-клиенты свидетельствуют о наличии поддержки сжатия с помощью заголовка Accept-Encoding в HTTP-запросе.

      Accept-Encoding: gzip, deflate

Если веб-сервер видит этот заголовок в запросе, он может сжать ответ с помощью одного из методов, указанного клиентом. Веб-сервер уведомляет веб-клиента через заголовок Content-Encoding.

      Content-Encoding: gzip

В данное время Gzip является наиболее популярным и эффективным методом сжатия. Он был разработан проектом GNU и стандартизирован RFC 1952. Единственным альтернативным форматом сжатия является Deflate, но он менее эффективен и популярен.

Gzipping обычно уменьшает размер ответа примерно на 70 %. Сейчас приблизительно 90 % интернет трафика проходит через браузеры, которые заявляют, что поддерживают gzip. Если Вы пользуетесь Apache, то модуль настройки GZIP зависит от версии: Apache 1.3 использует mod_gzip, а Apache 2.x использует mod_deflate.

Существуют известные проблемы с браузерами и прокси-серверами, которые могут послужить причиной несоответствия в том, что ожидает браузер с тем, что он получает в связи с сжатым контентом. К счастью, эти случаи становятся всё реже и реже, т. к. использование старых браузеров падает. Модули Apache решают этот вопрос путем автоматического добавления соответствующих заголовков ответа Vary.

Серверы выбирают что сжать, основываясь на типе файла, но, как правило, слишком ограничены в том, что они решили сжать. Большинство сайтов сжимают свои HTML-документы. Также заслуживает внимания сжатие  скриптов и таблиц стилей, но многие сайты упускают эту возможность.  В самом деле, имеет смысл сжимать любой текстовый ответ, включая XML и JSON. Изображения и файлы PDF не должны сжиматься, потому что они уже сжаты. Пытаясь их сжать, не только впустую нагружает центральный процессор, но и может потенциально увеличить размер файла.

Сжатие насколько возможно большего количества различных типов файлов является простым способом уменьшить вес страницы и ускорить работу пользователя.

 

Оригинал статьи на developer.yahoo.com

Перевод КОМТЕТ komtet.ru