Brotli-поток (.br)
IETF СтандартBrotli: открытый алгоритм сжатия без потерь, разработанный Google и оптимизированный для веб-шрифтов (WOFF2) и HTTP-кодирования содержимого (Content-Encoding: br), чтобы ускорять загрузку страниц.
Конвертировать из BROTLI в GZIP
Бесплатный конвертер из BROTLI в GZIP прямо в браузере. Конвертируйте файлы мгновенно на Вашем устройстве.
Анализ и метаданные
Операционные системы и анализаторы файлов идентифицируют файлы Brotli по начальной двоичной последовательности байтов:
Сигнатура заголовка на уровне байтов (Magic Bytes)
Операционные системы и анализаторы файлов идентифицируют файлы Brotli по начальной двоичной последовательности байтов:
HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):
CE B2 CF 81ПРЕДСТАВЛЕНИЕ ASCII: βÏ\x81
Стандартизация: IETF RFC 7932
Технические спецификации
| Архитектура контейнера | Необработанный битовый поток с необязательным указанием размера окна и метаблоками. |
| Сжатие | Скользящий словарь LZ77 (до 16 МБ), контекстное моделирование второго порядка и статический словарь размером 120 КБ |
| Порядок байтов (Endianness) | Упаковка бит в порядке от младшего разряда к старшему |
| Цветовые пространства | Н/Д (Поток сжатия данных) |
| Каналы и структура | Сжатие байтового потока общего назначения |
| Максимальные размеры | Произвольная длина байтового потока (поддерживает потоковую передачу без ограничений) |
| Прозрачность | Точное побайтовое сохранение данных без потерь при обратном преобразовании |
| Потоковая передача и прогрессивная загрузка | Разделение на метаблоки позволяет осуществлять непрерывную потоковую передачу 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 | Базы данных реального времени и приём данных | Базовый алгоритм сжатия |
Распространенные сценарии повреждения и руководство по восстановлению в HEX
Браузер не может загрузить ресурс с ошибкой 'ERR_CONTENT_DECODING_FAILED'.
Первопричина: Прокси-сервер или сервер усекли поток Brotli до того, как был передан финальный метаблок.
Восстановление: Очистите кэш браузера, проверьте настройки сжатия сервера или распакуйте локально через File2File.app.
Анализ безопасности и векторы атак на парсер
Статический словарь и моделирование контекста в Brotli требуют тщательной проверки границ памяти при обработке некорректных обратных ссылок.
Известные векторы атак
- Чтение указателя за пределами выделенной памяти при ссылке на смещения статического словаря за пределы размера таблицы.
- Бомба распаковки (эквивалент zip-бомбы), исчерпывающая клиентскую память из крошечных полезных нагрузок.
- Переполнение буфера при изменении размера кольцевого буфера скользящего окна.
Лучшие практики защиты: Задавайте максимальный размер выходного буфера при распаковке недоверенных потоков Brotli.
История происхождения и ключевые этапы
Ключевые преимущества и плюсы
- Коэффициент сжатия для веб-ресурсов HTML, CSS и JavaScript на 15: 25% лучше, чем у Gzip.
- Включает заранее заданный статический словарь размером 120 КБ с распространенными веб-словами, тегами HTML и фразами.
- Чрезвычайно высокая скорость распаковки, обеспечивающая практически мгновенный рендеринг страниц на стороне клиента.
Технические ограничения и минусы
- Сжатие на уровне 11 требует больших вычислительных ресурсов (лучше всего подходит для предварительного сжатия статических ресурсов).
- Для защиты от искажения данных прозрачными прокси-серверами требуется HTTPS во всех веб-браузерах.
- Необработанные файлы .br не имеют встроенных заголовков имен файлов или прав доступа без внешней контейнеризации.
Интересные технические факты
- Название Brotli происходит от слова 'Brötli', означающего «маленький хлеб» на швейцарском варианте немецкого языка.
- Статический словарь размером 120 КБ внутри Brotli содержит тысячи распространенных фрагментов на английском, испанском, немецком и китайском языках, а также фрагменты HTML.
- Более 95% современного интернет-трафика, проходящего через Cloudflare, Fastly и Google, передается с использованием сжатия Brotli.
Часто задаваемые технические вопросы
Почему Brotli работает быстрее Gzip для веб-сайтов?
Brotli сжимает файлы HTML, CSS и JS на 20% эффективнее, чем Gzip, при схожей скорости распаковки, сокращая число циклов обмена данными по сотовым сетям.
Почему Brotli требует HTTPS?
Веб-браузеры поддерживают Brotli только по защищенным соединениям HTTPS, поскольку устаревшие прозрачные прокси-серверы в интернете неправильно интерпретируют или повреждают новое кодирование 'br'.
Как я могу распаковать файл .br?
Вы можете мгновенно распаковать файлы .br или .brotli в обычный текст или оригинальные файлы с помощью File2File.app прямо в Вашем веб-браузере.