Kalkulator kompresji Gzip
Sprawdź rozmiar pliku po kompresji Gzip. Oblicz stopień kompresji, oszczędność bajtów i procent zmniejszenia. Testuj teksty, JSON, HTML, CSS. Bezpłatnie.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Przed kompresją
rozmiar danych wejściowych
Po kompresji
strumień GZIP (gzencode, stopień 6)
Stopień kompresji
o ile zmniejszyły się dane; małe dane mogą nawet urosnąć
Format wyjściowy
zakodowane bajty GZIP-a do wklejenia w kod lub API
H4sIAAAAAAAAA6WNvQ7CMAyE9zyF5blC4m/pzguwIgZDrKqSm1hxoCDUd8cB3oDN99357vCgSYVB6SmZYh9eAQD5zqliD2jjkG6KXYM34+KsBVyN0e/1Zrvbd1+gQqm9aMn4Q5UGc3TCWkYS7AATzyZcqze5unAlPHt2+QxMbEYDt5IjK1PlCHMu0eCaJy3uwswiK/jDxbCEN3l9xY/0AAAA
| Stopień | Charakter | Kiedy używać |
|---|---|---|
| 1 | Najszybszy (etykieta z selekty) | maksymalna prędkość, wynik największy — serwery pod obciążeniem i dane przesyłane bardzo często |
| 2 | Szybki | lekko lepsze zmniejszenie, wciąż niski koszt procesora |
| 3 | Szybki | kompromis dla częstych odpowiedzi dynamicznych |
| 4 | Umiarkowany | pierwsze wyraźne zyski rozmiaru bez dużego kosztu CPU |
| 5 | Umiarkowany | dobre dla treści tekstowych o średniej powtarzalności |
| 6 | Zbalansowany (etykieta z selekty) | domyślny poziom zliba i przykładu ładowanego w narzędziu — zacznij od niego |
| 7 | Wysoki | wolniejszy, marginalnie mniejszy wynik niż 6 |
| 8 | Wysoki | koszt CPU rośnie szybciej niż zysk miejsca |
| 9 | Najmniejszy (etykieta z selekty) | najmniejszy wynik, najwolniej — archiwa i eksporty budowane jednorazowo |
| Rodzaj danych | Typowe zmniejszenie | Dlaczego |
|---|---|---|
| Czysty tekst (proza, kod) | 60–70% | naturalna powtarzalność słów i struktury języka |
| HTML | 70–75% | dużo powtarzalnych znaczników i atrybutów |
| JSON | ok. 80% | klucze, cudzysłowy i wcięcia powtarzają się w każdej linii |
| XML | ok. 85% | najbardziej gadatliwy format — długie tagi domykane parzysto |
| Logi (powtarzalne wzorce) | ponad 90% | identyczne prefiksy, timestampy i komunikaty |
| JPEG / PNG / MP4 / ZIP | ok. 0% | dane już skompresowane — GZIP może je tylko powiększyć (narzut nagłówka i CRC-32) |
GZIP a Brotli: oba służą do Content-Encoding w HTTP i opierają się na LZ77 plus kodowaniu Huffmana. Brotli zwykle ściska tekst kilkanaście procent lepiej (prekompresja statycznych assetów), ale kompresuje wolniej i w przeglądarkach działa tylko po HTTPS; GZIP jest szybszy i obsługiwany wszędzie — dynamiczne odpowiedzi na żądanie kompresuje się najczęściej nim.
Warto wiedzieć — kompresja GZIP w praktyce
Co to jest GZIP
Bezstratny format kompresji (RFC 1952) oparty na strumieniu DEFLATE (RFC 1951): LZ77 zamienia powtarzające się fragmenty na odwołania, a kodowanie Huffmana skraca bity najczęstszym znakom. Żyje w plikach .gz, archiwach tar.gz i odpowiedziach HTTP z nagłówkiem Content-Encoding: gzip.
Stopnie 1–9: czas kontra rozmiar
Wyższy stopień to mniejszy wynik, ale proporcjonalnie dłuższa praca procesora — powtarzalne dane (logi, JSON, HTML) zyskują najwięcej niezależnie od poziomu, więc dla ruchu na żywo zwykle wystarcza 4–6, a 9 zostaw archiwom kompresowanym raz.
Dlaczego Base64 albo hex
Surowy strumień GZIP jest binarny — nie da się go bezpiecznie wkleić do JSON-a, URL-a ani loga. Base64 (krótszy, zalecany) lub hex (dłuższy, czytelniejszy w debugu) zamieniają bajty na tekst; po drugiej stronie dekodujesz je z powrotem i rozkompresowujesz gzdecode().
Bezpieczeństwo i typowy przepływ
Kompresja liczy się na serwerze w pamięci sesji — do historii narzędzia trafia wyłącznie kliknięcie „Przetwórz”, nie treść danych. Zaznacz „Pobierz jako .gz”, jeśli potrzebujesz prawdziwego pliku binarnego zamiast tekstu Base64/hex; wynik tekstowy skopiujesz albo pobierzesz jako .txt.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćKalkulator kompresji Gzip – sprawdź rozmiar przed i po
Gzip to algorytm kompresji bezstratnej używany do przesyłania zasobów sieciowych (HTML, CSS, JS, JSON). Serwer kompresuje, przeglądarka dekompresuje – użytkownik nie widzi różnicy, ale strona ładuje się szybciej. Narzędzie pokazuje jak bardzo twoje dane się skompresują.
Jak działa kompresja Gzip
Gzip używa algorytmu DEFLATE (LZ77 + kodowanie Huffmana). LZ77: zastępuje powtarzające się sekwencje wskaźnikami do poprzednich wystąpień. Huffman: koduje symbole krótszymi kodami na podstawie częstości. Wynik: powtarzające się wzorce (typowe w HTML/CSS/JS) kompresują się doskonale (60-90% redukcji).
Poziomy kompresji (1-9)
Poziom 1 (najszybszy, najniższa kompresja): przybliżona kompresja, najniższy CPU. Poziom 6 (domyślny nginx/Apache): optymalny balans szybkości i kompresji. Poziom 9 (maksymalny): najlepsza kompresja, ~10-20% wolniejszy od poziomu 6. Dla statycznych zasobów: kompresuj raz do poziomu 9 (pre-compression). Dla dynamicznych: poziom 1-4.
Stopień kompresji różnych typów plików
HTML: 60-85% redukcji (wiele powtarzających się tagów). CSS: 70-85%. JavaScript: 60-80%. JSON API response: 70-90% (klucze i wzorce się powtarzają). Fonty (WOFF2): 0-5% (już skompresowane). Obrazy (JPEG, PNG, WebP): 0-5% (już skompresowane). Wideo: 0-2%.
Brotli vs Gzip vs Deflate
Brotli (Google, 2015): 15-25% lepsza kompresja niż Gzip dla tekstu. Wsparcie: wszystkie nowoczesne przeglądarki (Chrome, Firefox, Edge, Safari). Serwery: nginx (1.11.5+), Apache (mod_brotli). Gzip: powszechny standard, starsze przeglądarki. Deflate: stary wariant, nadal obsługiwany.
Jak liczony jest stopień kompresji
Kalkulator nie szacuje oszczędności z gotowej tabelki – mierzy realną liczbę bajtów. Dane wejściowe trafiają do kompresora dokładnie w takiej postaci, w jakiej je wklejasz lub wczytujesz z pliku, a narzędzie zwraca długość strumienia wynikowego. Kompresja gzip jest bezstratna, więc porównujesz dwa rozmiary tej samej treści: przed i po.
Podstawowy wzór to stopień kompresji = (1 − rozmiar po / rozmiar przed) × 100%. Oszczędność w bajtach to po prostu rozmiar przed − rozmiar po. Obok procentu przydaje się współczynnik kompresji, czyli rozmiar przed / rozmiar po: redukcja o 75% odpowiada współczynnikowi 4:1, bo z każdych 4 bajtów wejścia zostaje 1 bajt. Ten sam wynik opisany na dwa sposoby bywa mylony, dlatego warto podawać jednostkę i podstawę obliczenia.
Na wynik wpływają tylko trzy rzeczy: zawartość danych, wybrany poziom kompresji i wersja użytego kompresora. Format gzip dokłada do strumienia własny nagłówek i sumę kontrolną, więc przy bardzo małych plikach rozmiar po może okazać się większy niż przed. Wynik podawany jest w bajtach, a 1 KiB to 1024 bajty – nie mieszaj KiB z kB, jeśli porównujesz liczby z rozmiarem pliku w systemie.
Przykład: strona HTML o rozmiarze 100 KiB
- Przygotuj materiał: pojedyncza strona HTML waży 102 400 bajtów, czyli równo 100 KiB.
- Wklej jej zawartość do kalkulatora i zostaw poziom 6, czyli domyślny poziom nginx i Apache.
- Odczytaj rozmiar po kompresji: 25 600 bajtów, czyli 25 KiB. To redukcja mieszcząca się w typowym przedziale 60–85% dla HTML.
- Policz stopień kompresji: (1 − 25 600 / 102 400) × 100% = (1 − 0,25) × 100% = 75%.
- Policz współczynnik i oszczędność: 102 400 / 25 600 = 4,0, czyli 4:1, a każde pobranie oszczędza 102 400 − 25 600 = 76 800 bajtów (75 KiB).
- Przełóż to na ruch: 10 000 odsłon tej strony bez kompresji to 1 024 000 000 bajtów (976,6 MiB), a z gzipem 256 000 000 bajtów (244,1 MiB). Różnica to 768 000 000 bajtów, czyli 732,4 MiB transferu mniej.
Tabela referencyjna: typowe oszczędności według typu pliku
| Typ zawartości | Typowa redukcja rozmiaru | Praktyczna wskazówka |
|---|---|---|
| HTML | 60–85% | Skompresuj raz przy budowaniu strony i serwuj gotowy plik wynikowy |
| CSS | 70–85% | Największy zysk przy powtarzalnych selektorach i regułach |
| JavaScript | 60–80% | Kompresuj po minifikacji, nie przed nią |
| Odpowiedź JSON z API | 70–90% | Kompresja w locie, wystarczy niski poziom |
| Fonty WOFF2 | 0–5% | Format jest już skompresowany, ponowny gzip nic nie da |
| Obrazy JPEG, PNG, WebP | 0–5% | Zamiast gzip zoptymalizuj samo zdjęcie lub grafikę |
| Wideo | 0–2% | Nie włączaj gzip dla tych typów – to tylko obciąża serwer |
Praktyczne wskazówki przed włączeniem kompresji
- Mierz cały plik, nie fragment – wynik dla wyciętego kawałka kodu bywa zaniżony, bo kompresor traci powtarzalne wzorce z reszty dokumentu.
- Porównaj poziomy na tym samym wejściu – poziom 6 kontra 9 to zwykle dziesiąte części procenta różnicy w rozmiarze, ale wyraźny wzrost zużycia CPU.
- Sprawdź małe pliki – przy krótkich odpowiedziach nagłówek gzip potrafi przeważyć nad zyskiem, więc lepiej zostawić je bez kompresji.
- Nie kompresuj dwa razy – jeśli plik jest już spakowany albo wysyłany jako gotowy .gz, kolejne przejście da zysk bliski zeru.
- Testuj na reprezentatywnej próbce – zmierz kilka największych zasobów swojej strony, bo o wyniku decyduje powtarzalność treści, a nie jej długość sama w sobie.
Czego kalkulator nie pokaże
- Nagłówki HTTP i narzut protokołu – narzędzie zwraca rozmiar samego strumienia, bez nagłówków odpowiedzi i bez narzutu warstwy szyfrowania.
- Różnice między implementacjami – kompresor w nginx, moduł w Apache i biblioteka w przeglądarce mogą dać nieco inny wynik dla tego samego poziomu.
- Kompresję wielokrotną i cache – wynik dotyczy jednego przebiegu, a serwer bez buforowania kompresuje każde żądanie od nowa, co kosztuje czas procesora.
- Koszt dekompresji po stronie odbiorcy – mniejszy transfer nie zawsze oznacza niższe zużycie CPU na urządzeniu użytkownika, zwłaszcza przy bardzo dużych plikach.
Najczęstsze pytania
Jak włączyć kompresję Gzip w nginx?
gzip on; gzip_types text/plain text/css application/javascript application/json image/svg+xml text/xml; gzip_min_length 1000; gzip_comp_level 6; gzip_vary on;. Sprawdzenie: curl -I -H "Accept-Encoding: gzip" URL | grep Content-Encoding. Wynik: "Content-Encoding: gzip" = włączona.
Jak włączyć Gzip w Apache/.htaccess?
Co to jest Transfer-Encoding: chunked a Content-Encoding: gzip?
Content-Encoding: gzip: treść jest skompresowana Gzip (dekompresować po odbiorze). Transfer-Encoding: chunked: treść wysyłana w kawałkach (streaming, bez Content-Length). Oba można łączyć: chunked transfer + gzip kompresja. HTTPS już szyfruje dane – to dodatkowa warstwa na kompresję treści.
Jakie pliki NIE warto kompresować Gzip?
Już skompresowane: JPEG, PNG, WebP, AVIF, GIF, MP4, WebM, ZIP, PDF, WOFF2. Małe pliki (<1KB): overhead nagłówka Gzip (18-20 bajtów) jest proporcjonalnie duży. Efekt: nginx gzip_min_length 1000 pomija pliki <1KB.
Jak mierzyć wpływ kompresji Gzip na wydajność?
Chrome DevTools → Network: kolumna "Size" (po kompresji) vs "Content" (oryginał). PageSpeed Insights: "Enable text compression" – audyt. Lighthouse: podobny. WebPageTest: szczegółowe byty per zasób. Cel: zasoby tekstowe > 1KB powinny mieć Content-Encoding: gzip lub br.
Czym różni się stopień kompresji od współczynnika kompresji?
Stopień kompresji to procentowa redukcja rozmiaru, np. 75%. Współczynnik to stosunek rozmiaru przed do rozmiaru po, np. 4:1. Ten sam wynik można opisać na oba sposoby.
Dlaczego plik po kompresji gzip jest większy niż przed?
Format gzip dokłada nagłówek i sumę kontrolną, a przy bardzo małych lub słabo powtarzalnych danych algorytm nie ma czego skracać. Takiego pliku najlepiej w ogóle nie kompresować.
Czy warto kompresować obrazy i fonty gzipem?
Zwykle nie. Obrazy JPEG, PNG, WebP oraz fonty WOFF2 są już skompresowane, więc redukcja wynosi 0–5%. Lepszy efekt da optymalizacja samego formatu.
Jak sprawdzić, czy serwer faktycznie wysyła gzip?
Sprawdź nagłówek Content-Encoding w odpowiedzi serwera, np. w zakładce sieci narzędzi deweloperskich. Jeśli go nie ma, kompresja nie jest włączona dla tego typu pliku.
Czy kompresja gzip wpływa na pozycję strony w Google?
Nie jest osobnym czynnikiem rankingowym, ale skraca czas ładowania, a szybkość strony przekłada się na wyniki w Core Web Vitals.
Powiązane narzedzia: formater JSON API, walidator YAML i konwerter Base64.