Gzip

Редактор: Марина Долгова 2949 3 мин

Что такое Gzip?

Gzip - это программа для сжатия файлов, а также их распаковки. Основной ее особенностью можно считать, что она умеет сжимать\разжимать файлы "на лету" и не умеет работать с несколькими файлами (чтобы сжать несколько файлов есть хитрость - соединить несколько файлов в один tar-архив и запаковать его с помощью gzip в архив tar.gz).

Смотрите также: как ускорить работу сайта?

Как использовать Gzip?

Чаще всего эту программу применяют для ускорения работы сайтов. Этот процесс достаточно легко описать: например, если пользователь хочет увидеть страницу сайта (размером 100 кб), то в режиме реального времени она сжимается на сервере (например до 50 кб) и передается в браузер пользователя сжатой. Далее браузер распаковывает страницу и показывает пользователю. В итоге мы получаем значительное уменьшение размера страницы, и как следствие более быструю ее загрузку. Но здесь есть одно "но", выигрывая во времени загрузки страницы, мы увеличиваем нагрузку на сервер, т.к. ему нужно обработать операцию сжатия фактически "на лету".

Какие браузеры поддерживают Gzip?

Все популярные на сегодня браузеры поддерживают данную технологию и могут распаковать такие страницы.

Стоит ли мне включать gzip для своего сайта?

На этот вопрос ответ скорее "да", чем "нет". Ведь если ваш сайт (с включенным gzip-архивированием) будет очень сильно перегружать сервер, то часть посетителей попросту не смогут увидеть страницу сайта, на которую они зашли. Им просто будет выдаваться ошибка. Также gzip не всегда дает существенное ускорение загрузки страниц. Это как правило зависит от контента страницы и особенностей сервера на котором находится сайт. В итоге наш вам совет: с помощью сервиса проверки скорости сайта (от Google) измерьте Page Speed своего сайта до включения gzip и после этого. Если разница будет существенной, и Ваш сервер сможет тянуть такую нагрузку (проверить это можно самостоятельно - периодично посещая свой сайт, или же уточнить у хостинг-провайдера), то однозначно нужно использовать данную архивацию на своем сайте.

Как включить gzip сжатие?

Т.к. конфигурации серверов у каждого хостинг-провайдера разные, то нет единого способа включить gzip. Здесь нужно пробовать, т.е. добавлять определенный код в файл .htaccess и смотреть заработало ли ускорение. Посмотреть это можно на этом сайте. Как видно из скриншота, на нашем сайте получилось сжать страницу на 88%.

Результат gzip-сжатия

И так, берем файл .htaccess и добавляем в него такие строки:

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
</IfModule>

Если не работает, то пробуем такой код:

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
<ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$ </ifmodule>
</IfModule>

Еще вариант:

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 month"
</filesmatch>
</ifmodule>

И еще:

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

Также можно попробовать добавить этот код (сообщает серверу, что если есть уже заархивированная копия данных, то заново архивировать не нужно, а следует передать браузеру уже имеющийся архив):

RewriteEngine On
AddEncoding gzip .gz
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]
Марина Долгова
Редактор материала • Марина Долгова Хостинг-эксперт (опыт работы 4 года) Основная специализация - работа с клиентами, модерация отзывов и вопросов, составление и актуализация рейтингов. Отвечает за англоязычную версию сайта. Девиз по жизни: "Путешествие в тысячу миль начинается с первого шага".
Не нашли ответ на свой вопрос?
Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.
Мы старались для Вас!
Оцените статью
или
Расскажите о ней

Юзеры (1) оценили на 5.0 из 5

Рейтинги хостинг-провайдеров по задачам сайта
Июля
Бесплатный тест
ОС
Технологии
Региональные