Потік Brotli (.brotli)
IETF СтандартBrotli - це алгоритм стиснення даних без втрат з відкритим вихідним кодом, розроблений Google, спеціально оптимізований для веб-типографіки (WOFF2) та кодування контенту HTTP (Content-Encoding: br) для прискорення доставки вебсторінок.
Конвертувати з BROTLI у GZIP
Безкоштовний конвертер з BROTLI у GZIP у браузері. Миттєво конвертуйте файли на своєму пристрої.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли Brotli, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли Brotli, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
CE B2 CF 81ASCII-УЯВЛЕННЯ: βÏ\x81
Стандартизація: IETF RFC 7932
Технічні характеристики
| Архітектура контейнера | Сирець фреймінгу бітового потоку з необов'язковим оголошенням розміру вікна та метаблоками |
| Стиснення | Ковзний словник LZ77 (до 16 МБ), контекстне моделювання другого порядку та статичний словник на 120 КБ |
| Порядок байтів (Endianness) | Бітове пакування у форматі Little-Endian |
| Колірні простори | Н/Д (Потік стиснення даних) |
| Канали та структура | Загальноцільове стиснення байтового потоку |
| Максимальні розміри | Довільна довжина байтового потоку (підтримує необмежений потік) |
| Прозорість | Точне збереження даних «байт-у-байт» без втрат |
| Потокове та прогресивне завантаження | Розбиття на метаблоки дозволяє безперервний HTTP-потік із передачею фрагментами (chunked transfer) |
Технічна матриця порівняння: Brotli проти конкурентів
| Технічний атрибут | Brotli (Поточний) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| Вбудований статичний словник | Включено веб-словник на 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.
Історичне походження та віхи
Головні переваги та плюси
- Коефіцієнт стиснення на 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 безпосередньо у своєму веббраузері.