Strumień Brotli (.brotli)

IETF Standardowy

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

Konwersja w 100% prywatna w przeglądarce - 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
KompresjaPrzesuwne 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 strukturaOgólnoznaczna kompresja strumienia bajtów
Maks. wymiaryDowolna długość strumienia bajtów (obsługuje strumieniowanie bez ograniczeń)
PrzezroczystośćBezstratna, dokładna zachowanie danych w obie strony
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)O 15% - 25% mniejszy niż GzipStandard bazowy (Gzip)O 10% - 20% mniejszy niż 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.

Analiza bezpieczeństwa i wektory ataku na parser

Statyczny słownik oraz modelowanie kontekstu Brotli wymagają rygorystycznych kontroli ograniczeń pamięci przed nieprawidłowo sformułowanymi odnośnikami wstecznymi.

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 specyfikację RFC 7932, co prowadzi do powszechnej adopcji przez przeglądarki internetowe.
2015Google przystosowuje Brotli jako ogólnoznaczną alternatywę kompresji sieciowej HTTP dla formatu Gzip.
2013Inżynierowie Google Jyrki Alakuijala i Zoltán Szabadka wprowadzają Brotli do kompresji czcionek internetowych WOFF2.

Główne zalety

  • O 15% do 25% lepszy stopień kompresji niż Gzip dla zasobów internetowych HTML, CSS i JavaScript.
  • 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?

Brotli kompresuje pliki HTML, CSS i JS o 20% mocniej niż Gzip, dekompresując je przy tym z podobnymi prędkościami, co zmniejsza liczbę wymaganych cykli przesyłu w sieciach komórkowych.

Dlaczego Brotli wymaga protokołu HTTPS?

Przeglądarki internetowe obsługują Brotli wyłącznie przez bezpieczne połączenia HTTPS, ponieważ starsze, przezroczyste serwery proxy w Internecie błędnie zinterpretowałyby lub uszkodziły 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.