Сжатие HTTP — это встроенная функция большинства современных веб-серверов и клиентов. Она уменьшает размер данных или объём передаваемых данных. В свою очередь, такое сжатие требует гораздо меньшей пропускной способности и повышает производительность веб-сайта. Эти алгоритмы сжатия обеспечивают сжатие некоторых документов на 80%. Brotli и gzip — два самых популярных алгоритма сжатия, используемых сегодня. Алгоритм сжатия gzip по умолчанию используется на большинстве веб-серверов, что упрощает его применение. Однако в зависимости от сценария использования Brotli может обеспечить более высокую производительность. Давайте сравним эти алгоритмы сжатия и узнаем, чем они отличаются.
Вы можете проверить, какой алгоритм сжатия используется в вашем браузере, открыв инструменты разработчика. Нажмите на файлы в разделе «Сеть». Если веб-сайт использует Cloudflare или другую CDN, алгоритм сжатия может не отображаться.
Другой метод, который можно использовать, – это команда curl .
curl -s -I -H "Accept-Encoding: gzip, deflate, br" https://example.ru
Конечно, вы должны заменить домен example.ru на сайт, который вы тестируете.
Gzip основан на алгоритме deflate. Для сжатия данных используются оба алгоритма – LZ77 и Huffman coding без потерь.
Алгоритм сжатия gzip обеспечивает степень сжатия 60-70% веб-контента. Это включает в себя HTML, CSS и Javascript, а также обеспечивает быструю распаковку. Он широко поддерживается основными веб-браузерами и является методом по умолчанию на веб-серверах.
Для сжатия данных gzip идентифицирует повторяющиеся последовательности и сохраняет ссылку на первое вхождение. Он заменяет последующие вхождения указателями на этот исходный экземпляр, вместо того чтобы сохранять одни и те же данные несколько раз. Для этого сжатия используется LZ77 . Затем, используя кодировку Хаффмана, он представляет часто встречающиеся символы. Он объединил более короткие двоичные коды и менее частые символы с более длинными кодами для дальнейшего сжатия данных.
Brotli использует вариант алгоритма LZ77 в сочетании с кодированием Хаффмана и сжатием на основе словаря. Его словарь включает распространённые строки и фразы, встречающиеся в веб-контенте. Это делает его особенно эффективным для сжатия небольших файлов, таких как HTML и CSS. Brotli обеспечивает более высокую степень сжатия по сравнению с gzip.
Brotli также поддерживается основными веб-браузерами и CDN, такими как Cloudflare.
Давайте сравним gzip и Brotli и найдём различия в алгоритмах сжатия.
Высокий коэффициент сжатия: Brotli часто обеспечивает сжатие на 15–25% лучше, чем gzip. Это делает его идеальным для веб-ресурсов, где уменьшение размера имеет решающее значение для ускорения загрузки.
Скорость распаковки: Brotli может быть немного медленнее, чем gzip, но всё равно работает быстро и поддерживается современными браузерами.
Brotli обеспечивает более эффективное сжатие, но требует больше времени и ресурсов процессора для сжатия файлов. Для статического контента (файлов, которые редко меняются) более низкая скорость сжатия Brotli может не быть проблемой. Такие файлы можно сжать один раз и многократно использовать из кэша. Для динамического контента более низкая скорость сжатия Brotli может снизить производительность, если не реализовано правильное кэширование.
Уровни сжатия
И Brotli, и gzip предлагают несколько уровней сжатия:
При максимальных уровнях сжатия (Brotli 11 и gzip 9) Brotli может значительно превзойти gzip по уменьшению размера файла. Однако для сжатия может потребоваться гораздо больше времени. Однако при более низких уровнях (Brotli 1-4 и gzip 1-4) Brotli по-прежнему часто превосходит gzip по скорости сжатия.
Это зависит от типа контента, который вы обслуживаете, и от содержимого этих веб-файлов. Для достижения наилучшей производительности вам может потребоваться протестировать и выбрать оптимальный алгоритм сжатия для вашего случая.
Когда использовать gzip
Когда использовать Brotli:
Brotli обеспечивает более высокую степень сжатия, чем gzip, что часто делает его лучшим выбором, но для динамического контента и сжатия на лету Gzip по-прежнему работает быстрее. Возможно, вам всё равно придётся протестировать, какой коэффициент сжатия использовать для оптимальной оптимизации производительности вашего сайта.
Если вам понравилась эта статья о различиях между Brotli и Gzip для ускорения работы вашего сайта, пожалуйста, поделитесь ею со своими друзьями в социальных сетях или оставьте комментарий в разделе «Комментарии».