Для чего используют алгоритмы сжатия
Каждый день на страницах сайтов размещается большое количество контента: от ярких иллюстраций и видео до сложных анимаций и объемных текстов. Все эти элементы важны для создания приятного пользовательского опыта, вовлечения аудитории и передачи полезной информации. Однако каждый элемент увеличивает общий вес страницы. При этом чем тяжелее страница — тем больше времени требуется для ее загрузки.
Чтобы решить эту проблему и были разработаны алгоритмы сжатия данных, такие как Brotli и GZIP. Их цель — уменьшить размер загружаемых файлов, будь то видео, изображения или код, и сократить время их передачи.
Алгоритмы анализируют повторяющиеся последовательности данных и заменяют их короткими символами, создавая «упакованный» файл, который занимает меньше места. Когда сжатый файл достигает устройства пользователя, он «распаковывается» до исходного состояния и отображается без потери качества.
Что такое Brotli
Brotli (Spanisch Brötli) — это современный алгоритм сжатия (компрессии) данных, разработанный специалистами Google в 2015 году, который был назван в честь фирменной швейцарской булочки. Изначально технология создавалась для сжатия шрифтов, но со временем была адаптирована для веб-трафика. В отличие от традиционного GZIP — утилиты, которая использовалась с 1992 года, Brotli предлагает улучшенный механизм сжатия данных. Он позволяет ускорить загрузку веб-страниц. Алгоритм особенно эффективен при работе с текстовыми файлами, HTML, CSS и JavaScript — ключевыми элементами любого сайта.
Сравнение Brotli и GZIP
Хотя GZIP долгое время был стандартом сжатия для веб-страниц, Brotli постепенно обрел не меньшую популярность благодаря усовершенствованной технологии. Мы уже упоминали, что алгоритм Brotli особенно эффективен при работе с текстовыми данными. Это возможно благодаря использованию статического словаря для более частотных терминов, что ускоряет сжатие и распаковку часто встречающихся фраз и кода.
Для наглядного сравнения эффективности сжатия Brotli и GZIP обратимся к таблице ниже. Подробно она была рассмотрена в исследовании Гарри Робертса об эффективности Brotli.
Уровни сжатия указывают на степень компрессии данных, которую применяет алгоритм. Чем выше уровень, тем меньше будет размер конечного файла, но при этом увеличивается время и ресурсы, необходимые для этого процесса.
Уровень сжатия | Размер (в байтах) | Эффективность сжатия (в сравнении с несжатыми данными) | Улучшение в % по сравнению с Gzip |
1 | 43456 | 2.73 | 3% |
2 | 39898 | 2.97 | 11% |
3 | 39416 | 3.08 | 11% |
4 | 38488 | 3.08 | 15% |
5 | 36323 | 3.27 | 19% |
6 | 36048 | 3.29 | 20% |
7 | 35804 | 3.31 | 20% |
8 | 35709 | 3.32 | 21% |
9 | 35659 | 3.33 | 21% |
Чтобы проверить, как сжимаются данные на нужном вам веб-ресурсе, а также как они влияют на размер передаваемой информации, используйте бесплатный инструмент compression-tester.
Компания Amazon Web Services, упоминает в своей документации, что Brotli может быть на 24% эффективнее, чем GZIP, и рекомендует использовать Brotli.
Самый часто используемый уровень сжатия файлов для большинства сайтов обычно составляет 5–6. Он позволяет сбалансировать степень и скорость сжатия данных.
Снова обратимся к исследованию Гарри Робертса об эффективности Brotli. В нем он приводит пример с произведениями Шекспира, которые имеют размер 5,2 Мб. С помощью алгоритма Brotli файлы сжимаются до 1,7 Мб при 6 уровне сжатия. Размер файла с пьесами Шекспира стал в 3.1 раза меньше. Если же использовать GZIP для того же файла и при том же уровне сжатия, то уменьшение размера будет лишь в 2.8 раз.
Для большинства типовых случаев Brotli более эффективен, чем GZIP. Однако Brotli следует использовать только для сжатия текстовых файлов. Такие форматы, как JPEG и MP4, имеют свои собственные встроенные алгоритмы сжатия.
Поддерживаемые браузеры
На сегодняшний день Brotli поддерживается большинством современных поисковых систем. В таблице ниже приведены данные о поддержке Brotli в различных версиях браузеров.
Браузер | Версия браузера с поддержкой Brotli |
Google Chrome | 51 и выше |
Mozilla Firefox | 44 и выше |
Microsoft Edge | 15 и выше |
Safari | 11 и выше |
Углубляемся в тему:
Расширенный список браузеров и версий, поддерживаемых Brotli
Технологии сжатия, доступные в услугах DDoS-Guard
Клиенты DDoS-Guard, которые пользуются услугой защиты от DDoS-атак на уровне L7, могут выбрать алгоритм сжатия и другие опции на панели управления CDN в личном кабинете:
- Включить/выключить кэширование.
- Выбрать уровень сжатия GZIP/brotli.
- Включить/выключить эвристическую рекомпрессию.
Эвристическая рекомпрессия
Технология комбинирует возможности алгоритмов Brotli и GZIP. Согласно данным исследования CertSimple, Brotli обеспечивает на 14-21% более эффективное сжатие по сравнению с GZIP, и этот показатель может доходить до 25-30%. Эвристическая рекомпрессия позволяет распаковывать данные, сжатые с помощью GZIP, и повторно сжимать их с использованием Brotli, если браузер пользователя поддерживает этот алгоритм. Более того, система автоматически определяет, какой алгоритм сжатия будет наиболее эффективен для конкретной ситуации, и использует именно его.
Эвристическая рекомпрессия будет оптимальным решением для тех, кто стремится к максимальной экономии времени загрузки каждой страницы. Управление оптимизацией контента доступно для всех услуг DDoS-Guard, где включен модуль защиты на уровне L7.