Brotli: Новый алгоритм сжатия трафика

Brotli: Новый алгоритм сжатия трафика

Современные веб сайты могут состоять из нескольких мегабайт HTML, CSS и JavaScript кода и это еще не учитывая изображения, видео и прочий тяжёлый контент, с ними вес страницы может достигать 20 мегабайт. И все конечно заинтересованы в том, чтобы ускорить процесс открытия страниц браузерами, именно поэтому содержимое страниц передаётся в сжатых форматах, что значительно сокращает время обращения пользователя к странице до её полной загрузки и отображения.

Хотя Google и анонсировал появление нового алгоритма сжатия Brotli ещё в сентябре 2015 года, только в последнее время большинство веб-браузеров приняли его, а HTTP-серверы Apache и Nginx предлагают использовать Brotli в качестве дополнительной опции. Помимо самого Google, в настоящее время поддержку этого продукта с открытым исходным кодом внедряют такие небезызвестные коммерческие компании как Cloudflare и DreamHost.

Оказывается Brotli сжимает данные на 20-25{33d8302486bd10b0fde64d2037652320e6f176a736d71849c0427b0d7398501a} лучше чем это делает gzip. Brotli это удаётся благодаря использованию встроенного словаря, который включает наиболее распространенные слова и слоги на английском, испанском, китайском, хинди, русском и арабском языках, а также общие фразы, используемые в машиночитаемых языках (в частности, HTML и JavaScript). Это дает Brotli явное преимущество в компрессии и декомпрессии по сравнению с другими алгоритмами, такими как gzip, bzip2, LZMA и прочие.

Для того чтобы сравнить степень сжатия Brotli относительно других алгоритмов инженеры из Cloudflare провели бенчмарки . В свои тестах они поставили задачу выяснить имеет ли Brotli какие либо преимущества при использовании в реальных приложениях. Ещё одним значимым доказательством хорошей работы нового алгоритма, является сравнительное тестирование Сэма Шафрона , соучредителя Discourse.org, на странице по ссылке он демонстрируют увеличение скорости и уменьшение трафика с помощью алгоритма Brotli в различных браузерах.

Мы на нашем сервере протестировали Brotli, не скажу, что я заметил сильное улучшение производительности и скорости серфинга по сайту, но что то в этом безусловно есть.

В то время как Mozilla Firefox и Chrome включили у себя поддержку этого алгоритма по умолчанию, начиная с 44 и 49 версии соответственно, Apple вообще еще ничего не заявил, даже о гипотетической поддержке его в Safari, а Microsoft планирует поддержку Brotli только для браузера Edge, оставляя пользователей, отжившего своё Internet Explorer, глотать пыль стремительно мчащихся вперёд современных альтернатив. Сервер Microsoft’s IIS тоже получил бесплатное расширение добавляющее поддержку Brotli.

Для того чтобы проверить поддерживает ли ваш сервер алгоритм Brotli достаточно пройти на сайт KeyCDN.com и воспользоваться их онлайн утилитой.

В общем, невооруженным взглядом особых преимуществ в скорости заметить лично мне так и не удалось, но доверимся авторитетным бенчмаркам и возрадуемся, что такой замечательный алгоритм делается в рамках opensource. Лично я буду следить за его развитием и не исключено, что в ближайшем будущем наш сервер навсегда получит его поддержку.

Brotli на Github

Leave a Comment