Brotli поток (.br)

IETF Стандарт

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

Конвертиране от BROTLI към GZIP

Безплатен конвертор от BROTLI към GZIP в браузъра. Конвертирайте файлове незабавно на вашето устройство.

Проверка и метаданни

Операционните системи и файловите анализатори идентифицират Brotli файлове чрез проверка на началната двоична байтова последователност:

Изберете или пуснете файлове тук

Поверително - файловете никога не напускат устройството ви

или поставете Ctrl+V
Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

Байтов подпис на заглавката (сигнатурни байтове)

Операционните системи и файловите анализатори идентифицират Brotli файлове чрез проверка на началната двоична байтова последователност:

HEX ПОДПИС (ОФСЕТ 0):

CE B2 CF 81

ASCII ПРЕДСТАВЯНЕ: βÏ\x81

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

Технически спецификации

Контейнерна архитектураСурова битова последователност с незадължително задаване на размера на прозореца и метаблокове
КомпресияПлъзгащ се речник LZ77 (до 16 MB), моделиране на контекста от втори ред и статичен речник от 120 KB
Поредност на байтовете (Endianness)Потокът се обработва в ред от младшия към старшия байт (Little-Endian).
Цветови пространстваНеприложимо (поток за компресия на данни)
Канали и структураКомпресия на потоци от байтове с общо предназначение
Максимални размериПоток от байтове с произволна дължина (поддържа неограничено поточно предаване)
ПрозрачностБез загуби, с точно възстановяване на байтовете при декомпресия
Поточно предаване и прогресивно зарежданеРазделянето на метаблокове позволява непрекъснато поточно предаване на HTTP блокове

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

Технически атрибутBrotli (Текущ)GZZSTDDEFLATE
Вграден статичен речникВключен уеб речник с размер 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.app.

Анализ на сигурността и вектори на атака към парсера

Статичният речник и контекстното моделиране на Brotli изискват стриктни проверки на границите на паметта срещу деформирани обратни препратки (back-references).

Известни вектори на атака

  • Четене на указател извън позволените граници при препращане към отмествания в статичния речник извън размера на таблицата.
  • Бомба за декомпресия (еквивалент на zip bomb), изтощаваща клиентската памет от малки полезни товари.
  • Препълване на буфера по време на преоразмеряването на пръстеновидния буфер с плъзгащ се прозорец (sliding window ring buffer).

Най-добри практики за защита: Наложете максимални размери на изходния буфер по време на декомпресията на ненадеждни Brotli потоци.

Исторически произход и етапи

2016IETF публикува Brotli като RFC 7932.
2015Google адаптира Brotli за компресия на уеб съдържание по HTTP като алтернатива на Gzip.
2013Инженерите на Google Юрки Алакуяла (Jyrki Alakuijala) и Золтан Сабадка (Zoltán Szabadka) представят Brotli за компресия на уеб шрифтове WOFF2.

Основни предимства

  • За HTML, CSS и JavaScript ресурси в уеб може да постигне с 15% до 25% по-добър коефициент на компресия от Gzip.
  • Включва предварително дефиниран статичен речник от 120 KB с често срещани уеб думи, HTML тагове и фрази.
  • Изключително висока скорост на декомпресия, осигуряваща близка до мигновената визуализация на страниците от страна на клиента.

Технически ограничения и минуси

  • Компресията на ниво 11 е изчислително скъпа (най-подходяща за предварителна компресия на статични ресурси).
  • Изисква HTTPS във всички уеб браузъри за предотвратяване на повреда от прозрачни прокси сървъри.
  • Суровите файлове с разширение .br нямат вградени имена на файлове или хедъри за права без външно контейнеризиране.

Интересни технически факти

  • Brotli е кръстен на „Brötli“, което означава „малък хляб“ на швейцарски немски.
  • Статичният речник с размер 120 KB вътре в Brotli съдържа хиляди често срещани английски, испански, немски, китайски и HTML фрагменти.
  • Brotli се поддържа от основните уеб сървъри и браузъри, но делът му в трафика зависи от услугата и типа на отговора.

Често задавани технически въпроси

Защо Brotli е по-бърз от Gzip за уебсайтове?

В някои случаи Brotli създава по-малки текстови файлове за уеб от Gzip, но разликата зависи от съдържанието, настройките за компресия и реализацията.

Защо Brotli изисква HTTPS?

Уеб браузърите поддържат Brotli само през защитени HTTPS връзки, тъй като старите прозрачни прокси сървъри в интернет биха разчели погрешно или биха повредили новото кодиране 'br'.

Как мога да декомпресирам .br файл?

Можете незабавно да декомпресирате .br или .brotli файлове в обикновен текст или оригинални файлове с помощта на File2File.app директно във вашия уеб браузър.