Brotli
Brotli to bezstratny algorytm kompresji danych opracowany przez Google i ustandaryzowany w RFC 7932, zaprojektowany przede wszystkim do przyspieszania WWW. Łączy nowoczesny wariant algorytmu LZ77, kodowanie Huffmana i modelowanie kontekstowe, a jego znakiem rozpoznawczym jest wbudowany, 120-kilobajtowy słownik ponad 13 tysięcy najczęstszych fraz z języków naturalnych, HTML-a i kodu — dzięki niemu świetnie kompresuje typowe zasoby stron.
Jak działa Brotli
Brotli oferuje 12 poziomów kompresji (0–11). Im wyższy poziom, tym mniejszy plik, ale dłuższy czas pakowania — dlatego w praktyce stosuje się dwa tryby:
- kompresja dynamiczna (w locie, dla HTML generowanego per żądanie) — poziomy 4–6, kompromis między rozmiarem a obciążeniem CPU serwera,
- kompresja statyczna (pre-kompresja plików CSS/JS/SVG podczas builda lub deploya) — poziom 11; serwer serwuje gotowy plik .br bez liczenia czegokolwiek w czasie żądania.
Negocjacja odbywa się standardowo przez HTTP: przeglądarka wysyła Accept-Encoding: br, gzip, a serwer odpowiada nagłówkiem Content-Encoding: br. Wsparcie mają wszystkie współczesne przeglądarki, a dla nielicznych starych klientów utrzymuje się fallback do gzip. Warto dodać, że Brotli kompresuje też nagłówki w protokole HTTP/2 pośrednio przez mniejsze treści, a w HTTP/3 pozostaje tak samo istotny.
Zastosowanie w praktyce
Włączenie Brotli to jedna z najtańszych optymalizacji wydajności: mniejsze transfery oznaczają szybsze FCP/LCP, lepsze wyniki w PageSpeed i mniejsze zużycie łącza. W Nginx służy do tego moduł ngx_brotli (dyrektywy brotli on, brotli_static on), w Apache — mod_brotli, a LiteSpeed i większość CDN-ów (Cloudflare, Fastly) mają Brotli wbudowany. Na hostingach współdzielonych obsługa zależy od konfiguracji serwera, dlatego przy wyborze usługi warto sprawdzić, czy panel lub serwer WWW wspiera kompresję Brotli.
Kompresuje się wyłącznie treści tekstowe (HTML, CSS, JS, JSON, SVG, XML). Obrazy JPEG/WebP/AVIF, wideo i pliki już spakowane pomija się — ponowna kompresja nic nie daje, a kosztuje CPU.
Powiązane pojęcia
Najczęstsze pytania
Czy Brotli jest lepszy od gzip?
Dla treści tekstowych (HTML, CSS, JS) Brotli osiąga zwykle o 15–25% mniejsze pliki przy porównywalnym czasie dekompresji. Gzip pozostaje wart utrzymania jako fallback dla starych klientów, ale wszystkie współczesne przeglądarki preferują Brotli.
Jak sprawdzić, czy moja strona używa Brotli?
W narzędziach deweloperskich przeglądarki (zakładka Network) sprawdź nagłówek odpowiedzi content-encoding — wartość „br” oznacza Brotli, „gzip” starszą kompresję. Można też użyć curl z nagłówkiem Accept-Encoding: br.
