hostprofi.ru
Подобрать хостинг
Термин·буква G

Gzip / Brotli сжатие

краткое определение

Gzip и Brotli — алгоритмы сжатия для HTTP-ответов. Уменьшают размер передаваемых HTML, CSS, JS файлов в 5–10 раз. Gzip — универсальный стандарт с 1992 года. Brotli — современный алгоритм Google (2015), даёт на 15–25% лучшее сжатие при сравнимой скорости.

HTTP-сжатие позволяет серверу отправлять сжатые ответы, уменьшая объём трафика и ускоряя загрузку страниц. Браузер сообщает поддерживаемые алгоритмы в заголовке Accept-Encoding, сервер сжимает ответ и указывает использованный алгоритм в Content-Encoding.

Настройка в Nginx

# Включить gzip
gzip on;
gzip_vary on;
gzip_types text/plain text/css application/json application/javascript
           text/xml application/xml image/svg+xml;
gzip_min_length 1000;
gzip_comp_level 6;

# Brotli (требует модуль ngx_brotli)
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/javascript
             text/xml application/xml image/svg+xml;

Gzip vs Brotli

  • Gzip — стандарт RFC 1952 с 1996 года. Поддерживается 100% браузеров и серверов. Уровни 1–9. Оптимум: уровень 6.
  • Brotli — алгоритм Google 2015 года. Лучше сжимает (-15–26%) за счёт предварительно обученного словаря. Поддержка: все современные браузеры. Не поддерживается старыми прокси.

Что сжимать, что нет

Сжимать: HTML, CSS, JS, SVG, JSON, XML, текстовые форматы. Не сжимать: JPEG, PNG, GIF, WebP, ZIP, PDF — уже сжаты; повторное сжатие увеличивает размер или не даёт выигрыша.

Предкомпилированные файлы

Для статики лучше заранее создать сжатые файлы и отдавать без on-the-fly сжатия:

# Nginx: отдавать .gz файлы если есть
gzip_static on;
# Отдавать .br файлы
brotli_static on;

История

gzip создан Жан-Лу Гайи в 1992 году на основе алгоритма DEFLATE. HTTP-сжатие с gzip стандартизировано в HTTP/1.1 (1999). Brotli создан Google в 2013 году, опубликован в 2015. Chrome добавил поддержку Brotli в 2015 году. В 2024 году Brotli поддерживается всеми major браузерами и Nginx/Apache.

Связь с хостингом

На VDS включение gzip/Brotli в Nginx — одна из первых мер оптимизации. Для среднего сайта на WordPress HTML сжимается с 200 KB до 30–40 KB. Рекомендация: включить оба алгоритма — Brotli для современных браузеров, gzip как fallback. CDN (Cloudflare, BunnyCDN) сжимают ответы автоматически.

История Gzip и Brotli

Gzip создан Жаном-Лу Гайи и Марком Адлером в 1992 году. В HTTP/1.1 поддержка Content-Encoding: gzip стандартизирована в RFC 2616 (1999). Brotli разработан Google в 2015 году специально для веб-компрессии. RFC 7932 принят в 2016 году. Brotli обеспечивает сжатие на 20-26% лучше Gzip при схожем времени декомпрессии. Поддерживается всеми современными браузерами и более 80% интернет-трафика проходит через Gzip/Brotli сжатие.

Gzip vs Brotli vs Zstandard

АлгоритмСжатие (текст)Скорость компрессииПоддержка браузеров
Gzip (level 9)базовыймедленно100%
Gzip (level 6)-3%быстро100%
Brotli (level 11)+20-26%очень медленно95%+
Brotli (level 6)+15%сопоставимо с Gzip95%+
Zstandard+10-15%очень быстронет

Типичные ошибки настройки

  • Сжатие уже сжатых файлов (JPEG, PNG, WebP, ZIP, PDF) — только тратит CPU без выигрыша.
  • Gzip level 9 в реальном времени — высокая нагрузка на CPU VPS; используйте уровень 4-6.
  • Не включён Brotli: Nginx требует модуль ngx_brotli, не входящий в стандартную сборку.
  • Отсутствие заголовка Vary: Accept-Encoding при наличии CDN — кешируется только одна версия сжатия.

В связке с Cloudflare Gzip/Brotli работает автоматически для всего кешированного контента. Для WordPress плагины WP Rocket и LiteSpeed Cache включают Gzip на уровне приложения. Правильная комбинация — Nginx Brotli для PHP-ответов + CDN для статики.

Другие термины

Gzip / Brotli сжатие — что это, определение и как работает | Справочник — hostprofi.ru