Скорость сжатия и распаковки
- Gzip работает быстрее на этапе сжатия, но создаёт файлы большего размера. Это может быть плюсом, если важнее скорость сжатия (например, при генерации временных файлов).
- Brotli сжимает медленнее на высоких уровнях (особенно на максимальном 11-м), но файлы получаются значительно компактнее. При этом распаковка у Brotli происходит почти с той же скоростью, что у Gzip, а иногда и быстрее. Для конечного пользователя это значит: страница открывается быстрее, хотя сервер потратил чуть больше времени на подготовку ответа.
2. Размер сжатых файлов
- Brotli даёт на 15–25% меньший размер файлов, чем Gzip при одинаковом уровне качества.
- Это особенно заметно при сжатии JavaScript и CSS — основных ресурсов современных сайтов. Например, один и тот же JS-файл в Gzip может весить 100 КБ, а в Brotli — 75–80 КБ.
3. Поддержка браузеров и серверов
- Brotli поддерживается всеми современными браузерами: Chrome, Firefox, Safari, Edge, Opera.
- На стороне серверов Brotli включён «из коробки» в NGINX (с версии 1.9.9), Apache (с версии 2.4.26), а также доступен в CDN-сервисах (Cloudflare, Akamai и др.).
- Старые браузеры (например, IE) Brotli не поддерживают, поэтому в реальных конфигурациях используют «fallback»: Brotli для современных клиентов, Gzip для устаревших.
4. Использование CPU и памяти
- Brotli требует больше ресурсов на сжатие, особенно на высоких уровнях. Для небольших сайтов это не критично, но крупные проекты с динамическим контентом часто используют «средние» уровни (4–6), чтобы балансировать между временем сжатия и эффективностью.
- Gzip более «лёгкий» для процессора, но проигрывает в конечном результате.
5. Реальные сценарии применения
- Gzip до сих пор часто применяют для динамически генерируемого контента (например, страницы с частыми обновлениями), где важна скорость сжатия.
- Brotli обычно используют для статических ресурсов (CSS, JS, HTML), которые можно сжать один раз и отдавать пользователям многократно. Так добиваются максимального эффекта.