Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Dekompresja Gzip

Rozpakuj dane GZIP/DEFLATE w przeglądarce bez instalacji. Wklej base64 lub wgraj plik .gz. Wyświetl zdekompresowany tekst lub JSON. Bezpłatnie.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
132 znaków

Skompresowane

99 B

po zdekodowaniu Base64

Rozkompresowane

82 B
OK

wynik po gzdecode

Stopień kompresji

0,0 %

o ile GZIP zmniejszył dane

Nagłówek

1F 8B — GZIP

magiczne bajty 1F 8B na początku strumienia

Tryb Base64

Standardowy (+ /)
Hello from Toolsti! Paste a Base64-encoded GZIP payload here and click Decompress.
Narzędzie odmawia pracy, gdy pierwsze dwa bajty nie mają wartości 1F 8B — to najczystszy sygnał, że dane nie są GZIP-em
BajtyWartośćZnaczenie
0–1 1F 8B magiczne bajty GZIP — kod wymaga ord($decoded[0]) === 0x1F i ord($decoded[1]) === 0x8B
2 08 metoda kompresji: 08 = DEFLATE (RFC 1951), jedyna używana w praktyce
3 flagi bit 0 FTEXT (dane tekstowe), 1 FHCRC, 2 FEXTRA, 3 FNAME, 4 FCOMMENT
4–7 MTIME czas modyfikacji oryginału (unix timestamp), 0 = nieznany
8 XFL dodatkowe flagi kompresora (np. najwyższy/najszybszy poziom)
9 OS system, na którym powstał plik (np. 03 = Unix)

Po nagłówku następuje strumień DEFLATE (RFC 1951), a na końcu CRC-32 i rozmiar danych przed kompresją (mod 232). PHP dekompresuje to funkcją gzdecode() z limitem 20 MB w tym narzędziu.

Wartości orientacyjne dla domyślnego poziomu — porównasz je z kafelkiem „Stopień kompresji” dla swoich danych
Rodzaj danychTypowe zmniejszenieDlaczego
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 i cudzysłowy 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ć

Dane już skompresowane (JPEG, PNG, MP4, ZIP) nie zmniejszą się w GZIP-ie, a małe pliki mogą nawet urosnąć — nagłówek i suma CRC to minimum ~20 bajtów narzutu.

Warto wiedzieć — GZIP i Base64

Co to jest GZIP

Format kompresji bezstratnej (RFC 1952) oparty na strumieniu DEFLATE (RFC 1951): LZ77 zamienia powtarzające się fragmenty na odwołania, a kodowanie Huffmana dopasowuje długość bitów do częstości znaków. Używany w plikach .gz, odpowiedziach HTTP (nagłówek Content-Encoding: gzip) i archiwach tar.gz.

Dlaczego Base64

Bajty GZIP-a zawierają znaki niebezpieczne dla JSON, URL-i i e-maili, dlatego często podróżują zakodowane Base64. Narzędzie rozumie dwa warianty: standardowy (+ / z dopełnieniem =) i URL-safe (- _ bez dopełnienia) — jeśli dekodowanie kończy się błędem, przełącz tryb. Opcja „Strip whitespace” usuwa łamania linii z maili i logów.

Typowe zastosowania

Debugowanie payloadów API z kompresją, analiza odpowiedzi serwera zaciągniętych curl'em, podgląd zawartości .gz i logów, odszyfrowanie danych z kolejków komunikatów i zrzutów bazy. Magiczne bajty 1F 8B w hex edytorze to szybki test, czy plik na pewno jest GZIP-em.

Bezpieczeństwo

Dekompresja liczy się w pamięci przeglądarkowej sesji — dane nie zapisują się na dysku, a do historii narzędzia trafia wyłącznie kliknięcie „Przetwórz”, nie treść. Wynik (zwykle tekst lub JSON) skopiujesz albo pobierzesz jako .txt; uszkodzony lub ucięty strumień kończy się czytelnym komunikatem, nie wyjątkiem.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Dekompresja GZIP – rozpakuj dane .gz online w przeglądarce

GZIP to popularny format kompresji używany w HTTP (Content-Encoding: gzip), plikach .gz, .tar.gz i logach serwerowych. Narzędzie dekompresuje dane GZIP bezpośrednio w przeglądarce (biblioteka pako.js / DecompressionStream API) bez wysyłania danych na serwer – bezpieczne dla wrażliwych danych.

dekompresja gzip online rozpakuj gz przeglądarka gzip decoder dekompresja base64 gzip

GZIP i DEFLATE – podstawy

GZIP: format pliku (.gz) oparty na algorytmie DEFLATE (LZ77 + Huffman coding). Nagłówek: magic bytes 1f 8b (hex). Kompresja typowych danych tekstowych: 60-80% redukcji. DEFLATE: rdzeń algorytmu (bez nagłówka gzip). zlib: DEFLATE z nagłówkiem zlib. Brotli: nowszy algorytm (br), lepsza kompresja niż gzip, obsługiwany przez nowoczesne przeglądarki.

GZIP w HTTP

Serwer odpowiedź: Content-Encoding: gzip (przeglądarka automatycznie dekompresuje). Klient żądanie: Accept-Encoding: gzip, deflate, br. Transfer-Encoding: chunked + gzip. Weryfikacja: curl -I -H "Accept-Encoding: gzip" URL → szukaj Content-Encoding: gzip. Oszczędność: HTML 70%, JSON API 60-80%, CSS/JS 50-70%. GZIP jest domyślny na Apache (mod_deflate), Nginx (gzip on).

Przypadki użycia dekompresji online

API responses: serwer zwraca skompresowane JSON – narzędzie dekompresuje do czytelnego tekstu. Logi serwera: .gz archiwa logów Apache/Nginx do szybkiego podglądu. Bazy danych: eksporty PostgreSQL/MySQL w .tar.gz. S3/GCS: pliki .gz z obiektów storage. Kafka/Kinesis: messages skompresowane gzip (base64 encoded w niektórych narzędziach).

Komendy terminalowe GZIP

Dekompresja pliku: gunzip plik.gz lub gzip -d plik.gz. Podgląd bez dekompresji: zcat plik.gz | head. Kompresja: gzip plik lub gzip -9 plik (max kompresja). TAR + GZIP: tar -xzf archiwum.tar.gz. Wylistuj zawartość: tar -tzf archiwum.tar.gz. Pipe: curl URL | gunzip | grep pattern. Python: import gzip; gzip.decompress(data).

Jak przebiega dekompresja GZIP krok po kroku

Dekompresja zaczyna się od rozpoznania formatu. GZIP ma stały nagłówek, a jego pierwsze bajty jednoznacznie wskazują, że dane są strumieniem gzip. Narzędzie czyta je i na tej podstawie decyduje, czy próbować rozpakowywania. Jeśli plik ma rozszerzenie .gz, ale nagłówek jest inny, dekompresor powinien zgłosić błąd, bo nie jest to gzip.

Po nagłówku mogą występować pola opcjonalne, np. nazwa oryginalnego pliku lub komentarz. Dalej znajduje się właściwy strumień DEFLATE, który łączy LZ77 i kodowanie Huffmana. LZ77 zamienia powtórzenia na odwołania do wcześniej widzianego fragmentu, a Huffman przypisuje krótsze kody częstszym symbolom. Jeśli dekompresor napotka parę odległość-długość, kopiuje wskazany fragment z już odtworzonego okna historii. Dzięki temu nie musi zapisywać powtórzeń wprost.

Na końcu strumienia jest stopka gzip z sumą kontrolną CRC-32 i rozmiarem oryginalnych danych. Po rozpakowaniu narzędzie może sprawdzić CRC-32, aby wykryć uszkodzenie. Jeśli dane są ucięte albo stopka się nie zgadza, dekompresja kończy się błędem lub zwraca niepełny wynik. Operacja odbywa się w przeglądarce, więc mechanizm jest taki sam jak w bibliotece pako.js czy DecompressionStream API.

Przykład: dekompresja access.log.gz w przeglądarce

  1. Przygotuj plik access.log.gz, który powstał po rotacji logów serwera. Chcesz sprawdzić kilka pierwszych linii bez wysyłania archiwum na obcy serwer.
  2. Otwórz /dekompresja-gzip i wskaż plik access.log.gz. Narzędzie wczytuje go jako tablicę bajtów.
  3. Sprawdza nagłówek. Jeśli dane zaczynają się od sygnatury gzip, przechodzi dalej. Jeśli nie, zobaczysz komunikat, że to nie jest poprawny gzip.
  4. Pomija pola opcjonalne i rozpakowuje strumień DEFLATE, odtwarzając powtórzenia za pomocą odwołań LZ77 i kodów Huffmana.
  5. Po rozpakowaniu sprawdzana jest stopka gzip. Zgodność CRC-32 i rozmiaru oznacza, że wynik jest kompletny; niezgodność to sygnał, że plik mógł zostać uszkodzony.
  6. Na końcu narzędzie pokazuje tekst w polu wyniku. Możesz skopiować log lub pobrać go jako plik tekstowy; przy bardzo dużym pliku przeglądarka może pracować wolniej.

Szybka tabela rozpoznawania danych wejściowych

Rodzaj danychSygnał rozpoznaniaZachowanie narzędzia
GZIP (.gz)Stały nagłówek strumienia gzipDekompresja do tekstu lub widoku binarnego po sprawdzeniu CRC-32.
Base64 z GZIPTekst Base64 zamiast bajtów binarnychWymaga najpierw dekodowania Base64; sam dekompresor gzip zgłosi błąd.
zlibNagłówek zlib, nie gzipNie jest gzip; potrzebny tryb zlib albo inne narzędzie.
Raw DEFLATEBrak nagłówka gzipWymaga trybu raw; w trybie gzip zakończy się błędem.
Plik .tar.gzPo dekompresji pojawia się archiwum tarGzip rozpakuje tylko warstwę kompresji; zawartość tar trzeba rozpakować osobno.
Uszkodzony GZIPUcięty strumień lub zły CRC-32Błąd dekompresji albo ostrzeżenie o niepełnych danych.
Wiele członów GZIPPo pierwszym strumieniu kolejny nagłówek gzipDobra implementacja scala wyniki; prostsze narzędzia mogą odczytać tylko pierwszy człon.
Pusty plikBrak bajtów nagłówkaBrak wyniku lub komunikat o nieprawidłowym formacie.

Praktyczne wskazówki przy dekompresji GZIP

  • Sprawdź, czy nie potrzebujesz dwóch kroków. Pliki .tar.gz, .tgz i .log.gz są najpierw gzipem, a dopiero potem właściwym formatem. Po dekompresji gzip możesz dostać tar, CSV, JSON albo log.
  • Base64 i gzip to dwie różne warstwy. Gdy dane są zakodowane w Base64, najpierw zdejmij kodowanie, a potem uruchom dekompresję gzip. Odwrotna kolejność zwykle kończy się błędem.
  • Nie oceniaj formatu po rozszerzeniu. Plik .gz może być uszkodzony, a plik bez rozszerzenia może zawierać poprawny nagłówek gzip. Rozpoznanie po bajtach jest pewniejsze niż po nazwie.
  • Przy dużych plikach pracuj na kopii. Dekompresja w przeglądarce zużywa pamięć; jeśli plik ma setki megabajtów, podziel go lub użyj narzędzia terminalowego.
  • Sprawdź wynik przed użyciem. Zweryfikuj, czy JSON parsuje się poprawnie, czy log kończy się oczekiwaną linią, a plik nie został ucięty. Sam brak błędu dekompresji nie gwarantuje kompletności danych.

Czego nie zrobi dekompresja GZIP online

  • Nie rozpakuje archiwów tar, ZIP ani 7z. GZIP kompresuje pojedynczy strumień bajtów. Jeśli w środku jest archiwum tar, narzędzie pokaże jego binarną zawartość, ale nie wypisze listy plików.
  • Nie naprawi uszkodzonych danych. Brak zgodności CRC-32, ucięty strumień DEFLATE albo błędy transmisji powodują, że wynik może być niepełny. Narzędzie nie odtworzy bajtów, których nie ma.
  • Nie zawsze poprawnie zinterpretuje kodowanie znaków. GZIP przechowuje bajty, a nie informację, czy tekst był w UTF-8, Windows-1250 czy ISO-8859-2. Po dekompresji możesz zobaczyć krzaki.
  • Nie obsłuży każdego wariantu kompresji. Brotli, zlib, raw DEFLATE i wieloczęściowe gzip wymagają świadomego wyboru trybu. Jeśli narzędzie oczekuje formatu gzip, część tych danych zakończy się błędem.
  • Nie zastąpi walidacji biznesowej. To, że dane dały się rozpakować, nie znaczy, że JSON jest poprawny, log kompletny, a plik bezpieczny. Sprawdź zawartość przed dalszym przetwarzaniem.

Najczęstsze pytania

Jaka jest różnica między GZIP, ZIP i 7z?

GZIP (.gz): kompresuje jeden plik. Często z TAR (.tar.gz = tarball). Standard HTTP. ZIP (.zip): archiwum wielu plików, kompresja per-plik (DEFLATE lub Store). Działa cross-platform bez dodatkowych narzędzi (Windows, macOS). 7z (.7z): algorytm LZMA2, lepsza kompresja niż zip/gzip. Brotli (.br): HTTP-only, nie plik archiwum. Zstandard (zstd): nowoczesny, szybszy niż gzip.

Jak sprawdzić czy plik jest poprawnym GZIP?

Magic bytes: pierwsze 2 bajty = 1F 8B (hex). Terminal: file plik.gz → "gzip compressed data". hexdump: hexdump -C plik.gz | head -1 → sprawdź 1f 8b. Python: import gzip; gzip.open(path).read(). Jeśli plik .gz nie otwiera się: może być truncated, corrupted lub nie jest prawdziwym GZIP.

Jak kompresować JSON API w Node.js?

Express.js: npm install compression, app.use(compression()). Fastify: fastify-compress. Ręcznie: const zlib = require("zlib"); zlib.gzip(Buffer.from(json), callback). Stream: fs.createReadStream().pipe(zlib.createGzip()).pipe(res). AWS Lambda: odpowiedź auto-kompresowana przy isBase64Encoded=true + Content-Encoding: gzip.

Dlaczego GZIP nie powinien być stosowany do plików binarnych?

JPEG, PNG, MP4, MP3: już skompresowane – gzip nie daje zysku lub powiększa plik. PDF: częściowo skompresowany – zysk minimalny. AES encrypted data: losowa – gzip nie kompresuje. Reguła: gzip opłaca się tylko dla danych z powtarzającymi się wzorcami (tekst, JSON, HTML, XML, SVG).

Jak debugować błąd "Content-Encoding: gzip" w fetch?

fetch() automatycznie dekompresuje gzip. Problem: duplikowana kompresja (proxy + serwer = double gzip). Sprawdź: response.headers.get("Content-Encoding"). Curl bez dekompresji: curl --compressed false lub --no-compressed. Wireshark/Charles Proxy: podejrzyj surowe bajty. DevTools Network: response body jest zawsze zdekompresowany przez przeglądarkę.

Jak rozpakować plik .gz online?

Otwórz narzędzie, wybierz plik .gz i uruchom dekompresję. Wynik pojawi się w przeglądarce; możesz go skopiować lub pobrać. Dane nie muszą być wysyłane na serwer.

Czy dekompresja GZIP online jest bezpieczna?

Jeśli narzędzie działa w przeglądarce, dane pozostają na Twoim urządzeniu. Nie przesyłaj jednak plików, których nie możesz ujawnić, do przypadkowych serwerów, które deklarują przetwarzanie po stronie serwera.

Czym różni się .gz od .tar.gz?

.gz to pojedynczy strumień gzip. .tar.gz to gzip nałożony na archiwum tar, więc po dekompresji gzip otrzymasz binarny plik tar, który trzeba rozpakować osobno.

Dlaczego plik .gz nie chce się rozpakować?

Najczęstsze przyczyny to uszkodzony lub ucięty plik, brak poprawnego nagłówka gzip albo użycie innego formatu, np. zlib lub raw DEFLATE. Sprawdź, czy plik nie jest przypadkiem archiwum ZIP z mylącym rozszerzeniem.

Jak zdekompresować odpowiedź gzip z API?

Zapisz surowe ciało odpowiedzi, a następnie wklej lub wczytaj je do dekompresora gzip. Jeśli dane są dodatkowo zakodowane Base64, najpierw użyj dekodera Base64.

Powiązane narzedzia: koder base64, formatowanie JSON i narzedzia developerskie HTTP.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!