Kompresja Gzip i Brotli
Negocjacja formatu między klientem a serwerem
Przeglądarka informuje w nagłówku Accept-Encoding, jakie algorytmy potrafi rozpakować. Serwer wybiera jeden z nich, przesyła zmniejszony pakiet danych i deklaruje użyty format w nagłówku Content-Encoding. Cała operacja przebiega bezstratnie — po dekompresji plik jest identyczny z oryginałem.
Gzip, czyli sprawdzony standard
Opracowany na początku lat dziewięćdziesiątych algorytm łączy słownikowe kodowanie LZ77 z kodowaniem Huffmana. Jego największym atutem pozostaje uniwersalność: obsługuje go praktycznie każde środowisko, od starych serwerów po urządzenia mobilne sprzed dekady. Na plikach tekstowych osiąga redukcję rzędu siedemdziesięciu procent.
Brotli i jego przewaga
Format zaprezentowany przez Google w 2015 roku korzysta z wbudowanego słownika zawierającego ponad sto tysięcy najczęstszych sekwencji spotykanych w kodzie stron. Dzięki temu na plikach HTML, CSS i JavaScript daje wynik lepszy o kilkanaście do dwudziestu kilku procent. Jedenaście poziomów kompresji pozwala wyważyć obciążenie procesora — najwyższe warto stosować wyłącznie do zasobów przygotowanych z wyprzedzeniem.
Czego kompresować nie warto
Fotografie w formatach JPEG i WebP, filmy MP4, dokumenty PDF oraz archiwa przeszły już własną kompresję. Ponowne przetwarzanie zużywa moc obliczeniową, a rozmiar potrafi wręcz nieznacznie wzrosnąć. Konfigurację włącza się modułem ngx_brotli w nginx, mod_deflate w Apache’u albo jednym przełącznikiem w panelu dostawcy CDN.