Konwerter Deflate na GZIP

Konwersja surowego strumienia DEFLATE na strumień GZIP pakuje skompresowany ładunek w standardowy kontener z nagłówkami metadanych, dzięki czemu systemy operacyjne i narzędzia sieciowe mogą go poprawnie odczytać.

Wybierz lub upuść pliki tutaj

Prywatnie - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V

Czekając na pliki, możesz zagrać w Code Rain

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

SpecyfikacjaDEFLATEGZIP
Typ MIMEapplication/zlibapplication/gzip
Typsurowy strumień DEFLATEkontener strumienia DEFLATE
KompresjaLZ77 + kodowanie HuffmanaDEFLATE (RFC 1951)
Standardowa specyfikacjaIETF RFC 1950 / RFC 1951IETF RFC 1952
Nagłówek z bajtami identyfikującymi78 01 / 78 9C / 78 DA (zlib header bytes)1F 8B (gzip ID1/ID2)

Przegląd formatu i zastosowania

Surowe strumienie danych DEFLATE zawierają skompresowane bajty bez żadnych nagłówków plików ani sum kontrolnych. Przeglądarki internetowe i narzędzia sieciowe często mają problem z przetwarzaniem tych nagich strumieni, ponieważ brakuje im metadanych, takich jak oryginalne nazwy plików, znaczniki czasu modyfikacji czy identyfikatory systemów operacyjnych. Umieszczenie tych surowych danych w kontenerze GZIP rozwiązuje te problemy z kompatybilnością. Programiści napotykają surowe strumienie DEFLATE w protokołach sieciowych, takich jak kompresja HTTP, fragmenty obrazów PNG i archiwa ZIP. Kiedy te strumienie muszą zostać zapisane jako samodzielne pliki dla narzędzi wiersza poleceń lub standardowych pobrań z internetu, inżynierowie konwertują je do formatu GZIP. Zapewnia to, że narzędzia dekompresyjne natychmiast rozpoznają typ pliku i rozpakują zawartość bez zgłaszania błędów.

Specyfikacja techniczna i analiza kodeków

Surowy DEFLATE to strumień bitów zgodny z RFC 1951, który wykorzystuje dopasowywanie LZ77 i kodowanie Huffmana, bez nagłówków ramki ani stałej sygnatury. Typ MIME application/zlib oznacza strumień DEFLATE opakowany w zlib zgodnie z RFC 1950, a nie surowy DEFLATE. GZIP (application/gzip) umieszcza ładunek DEFLATE w kontenerze z nagłówkiem rozpoczynającym się bajtami 1F 8B i stopką zawierającą sumę kontrolną CRC32 oraz rozmiar danych po dekompresji modulo 2^32.

Zgodność z systemami operacyjnymi i przeglądarkami

Strumienie GZIP są szeroko obsługiwane w nowoczesnych systemach operacyjnych, w tym Linux, macOS i Windows. Narzędzia wiersza poleceń, takie jak gzip, gunzip i 7-Zip, natywnie odczytują pliki GZIP. Przeglądarki internetowe automatycznie dekompresują GZIP w odpowiedziach HTTP otrzymywanych z serwerów, natomiast obsługa surowego DEFLATE często wymaga własnego parsera w środowisku JavaScript lub module WebAssembly.

Przydatne informacje

Zawsze upewnij się, że narzędzie dekompresyjne poprawnie odczytuje stopkę GZIP, ponieważ uszkodzone końcowe sumy kontrolne CRC32 spowodują przerwanie działania narzędzi wyodrębniających, nawet jeśli zawarty w niej ładunek DEFLATE jest nienaruszony.

Często zadawane pytania

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

Oba formaty wykorzystują kompresję bezstratną opartą na dokładnie tym samym algorytmie DEFLATE. Konwersja między nimi polega po prostu na dodaniu nagłówków kontenera i sum kontrolnych wokół istniejących skompresowanych bajtów, co oznacza, że podczas procesu pakowania nie dochodzi do żadnej utraty danych.

Czym różni się surowy strumień DEFLATE od strumienia GZIP?

Surowy DEFLATE zawiera tylko skompresowany ładunek bez żadnych identyfikujących nagłówków ani stopek. Strumień GZIP to znormalizowany kontener plików, który dodaje 10-bajtowy nagłówek i 8-bajtową stopkę z sumą kontrolną do surowych danych DEFLATE w celu śledzenia metadanych i wykrywania błędów.