Gzip
Gzip to powszechnie stosowana metoda bezstratnej kompresji danych, wykorzystywana w sieci głównie do zmniejszania rozmiaru plików przesyłanych między serwerem a przeglądarką użytkownika. Gdy przeglądarka pobiera stronę, serwer może kompresować w locie pliki tekstowe — HTML, CSS i JavaScript — zanim wyśle je łączem. Efekt to często kilkukrotnie mniejszy transfer i zauważalnie szybsze ładowanie witryny, dlatego włączenie Gzip należy do podstaw optymalizacji wydajności.
Jak działa Gzip?
Mechanizm opiera się na negocjacji między klientem a serwerem w ramach protokołu HTTP:
- Przeglądarka informuje serwer nagłówkiem Accept-Encoding: gzip, że akceptuje treść skompresowaną.
- Serwer kompresuje odpowiedź algorytmem DEFLATE (łączącym LZ77 i kodowanie Huffmana) i dodaje nagłówek Content-Encoding: gzip.
- Przeglądarka odbiera mniejszą paczkę danych i rozpakowuje ją po swojej stronie, zanim wyrenderuje stronę.
Kompresja jest szczególnie skuteczna dla plików tekstowych, w których powtarzają się wzorce (znaczniki, nazwy właściwości, słowa kluczowe). Nie ma natomiast sensu kompresowanie już skompresowanych formatów jak JPEG, PNG czy MP4 — dałoby to znikomy zysk przy niepotrzebnym obciążeniu procesora.
Zastosowanie w praktyce
Gzip włącza się w konfiguracji serwera WWW:
- Apache — poprzez moduł mod_deflate, często konfigurowany w pliku .htaccess.
- Nginx — dyrektywami gzip on oraz gzip_types określającymi kompresowane typy plików.
- CDN i cache — sieci dostarczania treści zwykle kompresują odpowiedzi automatycznie.
Dobrą praktyką jest łączenie Gzip (lub nowocześniejszego Brotli) z nagłówkami Cache-Control, aby jednocześnie zmniejszać rozmiar transferu i ograniczać liczbę pobrań. Poprawną konfigurację łatwo zweryfikować w narzędziach deweloperskich przeglądarki, sprawdzając obecność nagłówka Content-Encoding.
Warto podkreślić, że kompresja Gzip odbywa się w czasie rzeczywistym i obciąża procesor serwera — dlatego często stosuje się buforowanie skompresowanych wersji plików, by nie kompresować ich przy każdym żądaniu. Statyczne zasoby, takie jak biblioteki CSS i JS, można też skompresować z wyprzedzeniem i serwować gotowe. Włączenie Gzip to jeden z najprostszych i najtańszych sposobów przyspieszenia strony, dający zwykle natychmiastowy efekt bez ingerencji w kod aplikacji.
Powiązane pojęcia
Najczęstsze pytania
Czym różni się Gzip od Brotli?
Oba to algorytmy bezstratnej kompresji dla ruchu HTTP. Brotli, opracowany przez Google, oferuje zwykle nieco lepszy stopień kompresji plików tekstowych przy porównywalnej wydajności, dlatego dla nowoczesnych stron jest często pierwszym wyborem. Gzip pozostaje jednak uniwersalnym standardem obsługiwanym praktycznie wszędzie i doskonałym rozwiązaniem awaryjnym.
