Strumień Brotli (.br)

IETF Standard

Brotli to otwartoźródłowy, bezstratny algorytm kompresji danych opracowany przez firmę Google, ze szczególnym uwzględnieniem optymalizacji typografii internetowej (WOFF2) oraz kodowania zawartości HTTP (Content-Encoding: br) w celu przyspieszenia dostarczania stron internetowych.

Konwertuj BROTLI na GZIP

Darmowy konwerter z BROTLI na GZIP w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki Brotli, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Prywatnie - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki Brotli, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

CE B2 CF 81

REPREZENTACJA ASCII: βÏ\x81

Normalizacja: IETF RFC 7932

Specyfikacja techniczna

Architektura konteneraStruktura surowego strumienia bitów z opcjonalną deklaracją rozmiaru okna i metablokami
KompresjaPrzesuwny słownik LZ77 (do 16 MB), modelowanie kontekstu drugiego rzędu oraz statyczny słownik o wielkości 120 KB
Kolejność bajtów (Endianness)Pakowanie bitów w kolejności Little-Endian
Przestrzenie kolorówNie dotyczy (Strumień kompresji danych)
Kanały i strukturaKompresja strumienia bajtów ogólnego przeznaczenia
Maks. wymiaryDowolna długość strumienia bajtów (obsługuje strumieniowanie bez ograniczeń)
PrzezroczystośćBezstratne zachowanie danych z dokładnością bit po bicie
Streaming i progresywne ładowanieDzielenie na metabloki umożliwia ciągłe strumieniowanie transferu w trybie chunked HTTP

Techniczna macierz porównawcza: Brotli a konkurencja

Atrybut technicznyBrotli (Bieżący)GZZSTDDEFLATE
Wbudowany słownik statycznyZawiera słownik sieciowy o wielkości 120 KBBrak (tylko dynamiczny)Słowniki trenowane przez użytkownikaBrak (tylko dynamiczny)
Kompresja internetowa (w porównaniu do Gzip)Pliki są o 15% - 25% mniejsze niż po kompresji GzipStandard bazowy (Gzip)Pliki są o 10% - 20% mniejsze niż po kompresji GzipBazowy Deflate
Kodowanie zawartości HTTP'Content-Encoding: br''Content-Encoding: gzip''Content-Encoding: zstd''Content-Encoding: deflate'
Główny cel projektowyTransmisja tekstów oraz czcionek internetowychOgólna kompresja plików w systemie UnixBazy danych czasu rzeczywistego i pozyskiwanie danychPodstawowy algorytm kompresji

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Przeglądarka nie ładuje zasobu z błędem 'ERR_CONTENT_DECODING_FAILED'.

Główna przyczyna: Serwer lub serwer pośredniczący (proxy) przyciął strumień Brotli przed przesłaniem ostatniego metabloku.

Odzyskiwanie: Wyczyść pamięć podręczną przeglądarki, sprawdź ustawienia kompresji serwera lub zdekompresuj lokalnie za pomocą File2File.app.

Analiza bezpieczeństwa i wektory ataku na parser

Statyczny słownik Brotli i modelowanie kontekstu wymagają rygorystycznej kontroli limitów pamięci przy przetwarzaniu nieprawidłowych odwołań wstecznych.

Znane wektory ataku

  • Odczyt wskaźnika poza granicami pamięci podczas odwoływania się do przesunięć statycznego słownika wykraczających poza rozmiar tabeli.
  • Bomba dekompresyjna (odpowiednik bomby ZIP) wyczerpująca pamięć klienta z małych ładunków danych.
  • Przepełnienie bufora podczas zmiany rozmiaru bufora kołowego z przesuwnym oknem.

Najlepsze praktyki obronne: Wymuszaj maksymalne rozmiary bufora wyjściowego podczas dekompresji niezaufanych strumieni Brotli.

Pochodzenie historyczne i kamienie milowe

2016IETF publikuje Brotli jako RFC 7932.
2015Google przystosowuje Brotli do ogólnego zastosowania jako alternatywę dla Gzip w kompresji danych przesyłanych przez HTTP.
2013Inżynierowie Google Jyrki Alakuijala i Zoltán Szabadka wprowadzają Brotli do kompresji czcionek internetowych WOFF2.

Główne zalety

  • W przypadku zasobów internetowych HTML, CSS i JavaScript współczynnik kompresji jest o 15% do 25% lepszy niż w Gzip.
  • Zawiera predefiniowany statyczny słownik o wielkości 120 KB zawierający powszechne słowa internetowe, znaczniki HTML oraz frazy.
  • Niezwykle wysoka prędkość dekompresji, zapewniająca niemal natychmiastowe renderowanie strony po stronie klienta.

Ograniczenia techniczne i wady

  • Kompresja na poziomie 11 jest wymagająca obliczeniowo (najlepiej sprawdza się przy wstępnej kompresji zasobów statycznych).
  • Wymaga protokołu HTTPS we wszystkich przeglądarkach internetowych, aby zapobiec uszkodzeniu przez przezroczyste proxy.
  • Surowe pliki .br nie posiadają osadzonych nagłówków nazw plików ani uprawnień bez zewnętrznego kontenera.

Ciekawe informacje techniczne

  • Nazwa Brotli pochodzi od słowa „Brötli", co w szwajcarskim dialekcie języka niemieckiego oznacza „mały chlebek".
  • Statyczny słownik 120 KB wewnątrz Brotli zawiera tysiące powszechnych fragmentów w języku angielskim, hiszpańskim, niemieckim, chińskim oraz znaczniki HTML.
  • Ponad 95% współczesnego ruchu internetowego za pośrednictwem Cloudflare, Fastly i Google jest dostarczane z użyciem kompresji Brotli.

Często zadawane pytania techniczne

Dlaczego Brotli jest szybszy niż Gzip dla stron internetowych?

Pliki HTML, CSS i JavaScript skompresowane Brotli są o 20% mniejsze niż po kompresji Gzip, a ich dekompresja trwa podobnie długo. Dzięki temu w sieciach komórkowych potrzeba mniej rund przesyłu danych.

Dlaczego Brotli wymaga protokołu HTTPS?

Przeglądarki internetowe obsługują Brotli tylko przez bezpieczne połączenia HTTPS, ponieważ starsze, przezroczyste serwery proxy w Internecie mogłyby błędnie zinterpretować lub uszkodzić nowe kodowanie „br”.

Jak mogę zdekompresować plik .br?

Możesz natychmiast zdekompresować pliki .br lub .brotli do postaci czystego tekstu lub oryginalnych plików, korzystając z serwisu File2File.app bezpośrednio w przeglądarce internetowej.