Wiki
Web / стек

Brotli vs gzip — что это простыми словами

gzip и Brotli — алгоритмы HTTP-сжатия текстовых ответов (HTML/CSS/JS/JSON). Brotli сжимает на 15-25 % плотнее, поддерживается всеми браузерами с 2016.

HTTP-сжатие сокращает объём текстовых ответов сервера в 3-6 раз, уменьшая latency на 30-70 %. Два стандарта: gzip (1992, DEFLATE) и Brotli (Google, 2015, оптимизирован для веба). Клиент говорит `Accept-Encoding: gzip, br`, сервер отвечает `Content-Encoding: br`.

Разница: (1) Плотность — Brotli плотнее gzip на 15-25 % благодаря встроенному словарю распространённых веб-паттернов (`<html`, `function`, `background-color`). (2) Скорость сжатия — Brotli на уровне 4 сравним с gzip level 6; на 11 (макс) — в 30 раз медленнее (годится только для статики). (3) Скорость распаковки — примерно равна.

Практика: (1) Статика (CSS/JS/шрифты) — pre-compress в Brotli 11 при build (Vite/Webpack плагин `vite-plugin-compression`), сервер отдаёт `.br` файл — 0 CPU в рантайме. (2) Динамика (SSR HTML, API JSON) — Brotli 4-5 на nginx (`brotli_comp_level 4`), CPU-friendly. (3) НЕ сжимать — картинки JPEG/PNG/WebP, видео MP4, архивы ZIP — они уже сжаты, gzip только увеличит.

У нас Next.js standalone build раздаёт `.br` через сам Node.js для статики. Динамика — Cloudflare-edge Brotli автоматически.

Частые вопросы

Zstd лучше Brotli?
Zstd (RFC 8878) чуть плотнее и быстрее, но пока `Accept-Encoding: zstd` шлют < 30 % клиентов. Brotli в 2026 — золотой стандарт web.
Что первым включить?
Brotli на statics — instant win. Динамику — при заметной ширине канала.

Смотрите также