Brotli-поток (.brotli)
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.
Анализ безопасности и векторы атак на парсер
Статический словарь и контекстное моделирование 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 прямо в вашем веб-браузере.