Brotli поток (.brotli)
IETF СтандартBrotli е алгоритъм за компресия без загуба с отворен код, разработен от Google, специално оптимизиран за уеб типография (WOFF2) и HTTP кодиране на съдържанието (Content-Encoding: br) за ускоряване на доставката на интернет страници.
Конвертиране на BROTLI към GZIP
Безплатен конвертор от BROTLI към GZIP в браузъра. Конвертирайте файлове незабавно на вашето устройство.
Инспектиране и метаданни
Операционните системи и файловите анализатори идентифицират Brotli файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на хедъра (Magic Bytes)
Операционните системи и файловите анализатори идентифицират Brotli файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
CE B2 CF 81ASCII ПРЕДСТАВЯНЕ: βÏ\x81
Стандартизация: IETF RFC 7932
Технически спецификации
| Контейнерна архитектура | Raw bitstream framing with optional window size declaration and meta-blocks |
| Компресия | LZ77 sliding dictionary (up to 16 MB), second-order context modeling, and static 120 KB dictionary |
| Поредност на байтовете (Endianness) | Little-Endian bit-packing |
| Цветови пространства | N/A (Data Compression Stream) |
| Канали и структура | General-purpose byte stream compression |
| Максимални размери | Arbitrary byte stream length (supports unbounded streaming) |
| Прозрачност | Lossless byte-for-byte exact roundtrip data preservation |
| Стрийминг и прогресивно зареждане | Meta-block chunking allows continuous HTTP chunked transfer streaming |
Техническа сравнителна матрица: Brotli спрямо конкуренти
| Технически атрибут | Brotli (Текущ) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| Вграден статичен речник | Включен уеб речник с размер 120 KB | Няма (само динамичен) | Потребителски обучими речници | Няма (само динамичен) |
| Уеб компресия (в сравнение с 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 изискват стриктни проверки на границите на паметта срещу деформирани обратни препратки (back-references).
Известни вектори на атака
- Четене на указател извън позволените граници при препращане към отмествания в статичния речник извън размера на таблицата.
- Бомба за декомпресия (еквивалент на zip bomb), изтощаваща клиентската памет от малки полезни товари.
- Препълване на буфера по време на преоразмеряването на пръстеновидния буфер с плаващ прозорец (sliding window ring buffer).
Защитни добри практики:
Исторически произход и етапи
Основни предимства и плюсове
- 15% до 25% по-добър коефициент на компресия от Gzip за HTML, CSS и JavaScript уеб ресурси.
- Включва предварително дефиниран статичен речник от 120 KB с често срещани уеб думи, HTML тагове и фрази.
- Изключително висока скорост на декомпресия, осигуряваща близка до мигновената визуализация на страниците от страна на клиента.
Технически ограничения и минуси
- Компресията на ниво 11 е изчислително скъпа (най-подходяща за предварителна компресия на статични ресурси).
- Изисква HTTPS във всички уеб браузъри за предотвратяване на повреда от прозрачни прокси сървъри.
- Суровите файлове с разширение .br нямат вградени имена на файлове или хедъри за права без външно контейнеризиране.
Интересни технически факти
- Brotli е кръстен на 'Brötli', което означава „малък хляб" на швейцарски немски.
- Статичният речник с размер 120 KB вътре в 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 директно във вашия уеб браузър.