Konwerter strumienia GZIP na surowy format DEFLATE

Konwersja strumienia GZIP na surowy format DEFLATE usuwa zewnętrzną otoczkę pliku i metadane nagłówka, pozostawiając jedynie skompresowaną zawartość dla specjalistycznych protokołów sieciowych i niskopoziomowych archiwów.

Wybierz lub przeciągnij pliki

Wybierz lub upuść pliki tutaj

Konwersja w 100% prywatna w przeglądarce - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Porównanie formatów i specyfikacja techniczna

SpecyfikacjaGZIPDEFLATE
Typ MIMEapplication/gzipapplication/zlib
TypDEFLATE stream containerraw DEFLATE stream
KompresjaDEFLATE (RFC 1951)LZ77 + Huffman coding
Standardowa specyfikacjaIETF RFC 1952IETF RFC 1950 / RFC 1951
Nagłówek magic bytes1F 8B (gzip ID1/ID2)78 01 / 78 9C / 78 DA (zlib header bytes)

Przegląd formatu i zastosowania

Konwersja strumienia GZIP na surowy format DEFLATE odbywa się często w programowaniu stron internetowych, programowaniu sieciowym oraz niskopoziomowych przepływach pracy związanych z przechowywaniem danych. Programiści często mają do czynienia z formatem GZIP podczas zapisywania pojedynczych plików na dysku, ponieważ format ten zawiera pomocne metadane, takie jak oryginalne nazwy plików i znaczniki czasu modyfikacji. Jednak nowoczesne protokoły kompresji HTTP i specyficzne formaty binarne oczekują wyłącznie skompresowanej zawartości payloadu bez żadnych bajtów otoczki. Przeprowadzenie tej konwersji pozwala inżynierom przekazywać standardowe skompresowane dane bezpośrednio do strumieni sieciowych lub niestandardowych parserów. Na przykład zbudowanie własnego programu obsługi odpowiedzi HTTP lub praca z archiwami ZIP często wymaga usunięcia nagłówka GZIP i stopki CRC32 w celu wyizolowania surowego wyjścia algorytmu. Usunięcie tych dodatkowych danych kontenera zmniejsza narzut w sytuacjach, gdy każdy pojedynczy bajt ma znaczenie w ograniczonych środowiskach programistycznych.

Specyfikacja techniczna i analiza kodeków

Strumień GZIP zidentyfikowany przez typ MIME application/gzip wykorzystuje strukturę kontenera zdefiniowaną w dokumencie RFC 1952. Zaczyna się on od dwubajtowego nagłówka liczby magicznej (0x1F, 0x8B), po którym następuje zestaw flag kompresji, czas modyfikacji, identyfikator systemu operacyjnego oraz opcjonalna nazwa pliku. Rzeczywiste skompresowane dane znajdują się w środku, a plik kończy się czterobajtową sumą kontrolną CRC32 oraz czterobajtowym wskaźnikiem nieskompresowanego rozmiaru. Z kolei surowy format DEFLATE zidentyfikowany przez application/zlib lub jako strumienie surowe opiera się na dokumencie RFC 1951. Nie zawiera on żadnych magicznych bajtów, nagłówków ani stóp. Używa algorytmu LZ77 w połączeniu z kodowaniem Huffmana do bezpośredniego przechowywania skompresowanych bloków. Konwersja między nimi jest całkowicie bezstratna, ponieważ oba formaty korzystają z dokładnie tego samego silnika kompresji DEFLATE. Proces konwersji polega po prostu na rozwinięciu otoczki GZIP, odrzuceniu metadanych i wyciągnięciu wewnętrznego strumienia bajtów DEFLATE.

Zgodność z systemami operacyjnymi i przeglądarkami

Surowe strumienie DEFLATE działają natywnie w nowoczesnych systemach operacyjnych i środowiskach wykonawczych sieci Web za pośrednictwem standardowych języków programowania, takich jak Python, Node.js i C++. Przeglądarki obsługują format DEFLATE natywnie za pośrednictwem stosu nagłówków kodowania treści HTTP. Systemy operacyjne takie jak Windows, macOS i Linux obsługują surowe strumienie za pomocą bibliotek kompresji systemowych, takich jak zlib. Platformy mobilne, w tym systemy Android i iOS, zapewniają bezpośredni dostęp przez interfejs API do procedur DEFLATE dla niestandardowych warstw przechowywania danych aplikacji.

💡 Przydatne informacje

Zawsze upewnij się, że Twój docelowy parser oczekuje czystego strumienia zgodnego z RFC 1951, a nie strumienia owiniętego w zlib, ponieważ zlib dodaje dwubajtowy nagłówek, który parsery surowego DEFLATE odrzucą.

Porównanie formatów i specyfikacja techniczna

10-megabajtowy plik tekstowy skompresowany do strumienia GZIP kurczy się do około 2 megabajtów. Usunięcie nagłówka i stopki w celu utworzenia pliku w surowym formacie DEFLATE daje identyczny rozmiar zawartości wynoszący 2 megabajty. Przesłanie tego 2-megabajtowego pliku zajmuje około 0,04 sekundy przy łączu światłowodowym 500 Mb/s, około 0,4 sekundy w standardowej sieci 5G oraz około 4 sekundy w zatłoczonym łączu komórkowym 4G.

Często zadawane pytania

Jak przekonwertować strumień GZIP na surowy format DEFLATE bez utraty jakości?

Oba formaty używają identycznych algorytmów kompresji bezstratnej. Ich konwersja polega po prostu na odczytaniu kontenera GZIP, usunięciu dziesięciobajtowego nagłówka i ośmiobajtowej stopki oraz zapisaniu wewnętrznych skompresowanych bloków. Żadne dane nie są tracone, ponieważ leżący u ich podstaw algorytm pozostaje niezmieniony.

Czym się różni strumień GZIP od surowego formatu DEFLATE?

GZIP to kompletny kontener pliku, który zawiera nagłówek z magicznymi bajtami, oryginalne nazwy plików, znaczniki czasu modyfikacji oraz stopkę z sumą kontrolną. Surowy format DEFLATE to po prostu same skompresowane dane, nie zawierające żadnych nagłówków, stóp ani metadanych pliku.