Потік Brotli (.brotli)

IETF Стандарт

Brotli - це алгоритм стиснення даних без втрат з відкритим вихідним кодом, розроблений Google, спеціально оптимізований для веб-типографіки (WOFF2) та кодування контенту HTTP (Content-Encoding: br) для прискорення доставки вебсторінок.

Конвертувати з BROTLI у GZIP

Безкоштовний конвертер з BROTLI у GZIP у браузері. Миттєво конвертуйте файли на своєму пристрої.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли Brotli, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

100% приватна конвертація у браузері - файли ніколи не покидають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності з нульовою передачею мережею: 0 байт завантажено на зовнішні сервери. Уся обробка виконується локально в пісочниці вашого браузера.

Сигнатура заголовка на байтовому рівні (Magic Bytes)

Операційні системи та аналізатори файлів ідентифікують файли Brotli, перевіряючи початкову послідовність бінарних байтів:

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):

CE B2 CF 81

ASCII-УЯВЛЕННЯ: βÏ\x81

Стандартизація: IETF RFC 7932

Технічні характеристики

Архітектура контейнераСирець фреймінгу бітового потоку з необов'язковим оголошенням розміру вікна та метаблоками
СтисненняКовзний словник LZ77 (до 16 МБ), контекстне моделювання другого порядку та статичний словник на 120 КБ
Порядок байтів (Endianness)Бітове пакування у форматі Little-Endian
Колірні просториН/Д (Потік стиснення даних)
Канали та структураЗагальноцільове стиснення байтового потоку
Максимальні розміриДовільна довжина байтового потоку (підтримує необмежений потік)
ПрозорістьТочне збереження даних «байт-у-байт» без втрат
Потокове та прогресивне завантаженняРозбиття на метаблоки дозволяє безперервний HTTP-потік із передачею фрагментами (chunked transfer)

Технічна матриця порівняння: Brotli проти конкурентів

Технічний атрибутBrotli (Поточний)GZZSTDDEFLATE
Вбудований статичний словникВключено веб-словник на 120 КБВідсутній (тільки динамічний)Словники, що настроюються користувачемВідсутній (тільки динамічний)
Веб-стиснення (порівняно з Gzip)На 15% - 25% менший за GzipБазовий стандарт (Gzip)На 10% - 20% менший за GzipБазовий Deflate
HTTP Content-Encoding'Content-Encoding: br''Content-Encoding: gzip''Content-Encoding: zstd''Content-Encoding: deflate'
Основна мета дизайнуПередача вебтексту та вебшрифтівЗагальне стиснення файлів UnixБази даних у реальному часі та завантаження данихБазовий алгоритм стиснення

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Браузер не завантажує ресурс з помилкою 'ERR_CONTENT_DECODING_FAILED'.

Першопричина: Проксі-сервер або сервер обірвав потік Brotli до передачі фінального метаблоку.

Відновлення: Очистьте кеш браузера, перевірте налаштування стиснення на сервері або розпакуйте локально через File2File.

Аналіз безпеки та векторів атак на парсери

Статичний словник та контекстне моделювання Brotli вимагають ретельної перевірки меж пам'яті на наявність пошкоджених зворотних посилань.

Відомі вектори атак

  • Читання вказівника за межами буфера під час звернення до зміщень статичного словника за межами розміру таблиці.
  • Бомба декомпресії (еквівалент zip-бомби), що вичерпує пам'ять клієнта з крихітних корисних навантажень.
  • Переповнення буфера під час зміни розміру кільцевого буфера ковзного вікна.

Захисні найкращі практики: Застосовуйте обмеження максимального розміру вихідного буфера під час декомпресії ненадійних потоків Brotli.

Історичне походження та віхи

2016IETF публікує Brotli як RFC 7932, що призводить до загального прийняття в HTTP-браузерах.
2015Google перепрофілює Brotli як універсальну альтернативу веб-стисненню Gzip для протоколу HTTP.
2013Інженери Google Jyrki Alakuijala та Zoltán Szabadka представляють Brotli для стиснення вебшрифтів WOFF2.

Головні переваги та плюси

  • Коефіцієнт стиснення на 15% - 25% кращий, ніж у Gzip, для веб-ресурсів HTML, CSS та JavaScript.
  • Містить попередньо визначений статичний словник розміром 120 КБ з поширеними веб-словами, тегами HTML та фразами.
  • Екстремально висока швидкість декомпресії, що забезпечує майже миттєвий рендеринг сторінки на стороні клієнта.

Технічні обмеження та мінуси

  • Стиснення на 11-му рівні є обчислювально затратним (найкраще підходить для попереднього стиснення статичних ресурсів).
  • Вимагає HTTPS у всіх веббраузерах для запобігання пошкодженню прозорими проксі-серверами.
  • Сирі файли .br не мають вбудованих заголовків імені файлу чи дозволів без зовнішньої контейнеризації.

Цікаві технічні факти

  • Brotli названо на честь «Brötli», що швейцарським німецьким діалектом означає «маленький хліб».
  • Статичний словник об'ємом 120 КБ всередині Brotli містить тисячі поширених англійських, іспанських, німецьких, китайських та HTML-фрагментів.
  • Понад 95% сучасного інтернет-трафіку через Cloudflare, Fastly та Google доставляється з використанням стиснення Brotli.

Поширені технічні запитання

Чому Brotli швидший за Gzip для вебсайтів?

Brotli стискає файли HTML, CSS та JS на 20% ефективніше за Gzip при аналогічній швидкості декомпресії, що зменшує кількість необхідних звернень (roundtrips) у стільникових мережах.

Чому Brotli вимагає HTTPS?

Веббраузери підтримують Brotli лише через захищені з'єднання HTTPS, оскільки застарілі прозорі проксі-сервери в інтернеті неправильно інтерпретували б або пошкодили нове кодування 'br'.

Як можна розпакувати файл .br?

Ви можете миттєво розпакувати файли .br або .brotli у звичайний текст чи оригінальні файли за допомогою File2File.app безпосередньо у своєму веббраузері.