Archiwum GZIP (.gz)

IETF Standard

Gzip (GZ) to standardowe narzędzie kompresji GNU i format pliku, powszechnie używane w systemach operacyjnych Unix oraz na serwerach HTTP do szybkiej kompresji plików i zasobów internetowych.

Konwertuj TAR na GZ

Darmowy konwerter z TAR na GZ w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki GZ, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Prywatnie - 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.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki GZ, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

1F 8B 08

REPREZENTACJA ASCII: ..\x08

Normalizacja: IETF RFC 1952

Specyfikacja techniczna

Architektura kontenera10-bajtowy nagłówek (sygnatura 0x1F 0x8B, metoda 8, flagi, mtime, OS), po którym następuje strumień DEFLATE i 8-bajtowy blok końcowy
KompresjaAlgorytm DEFLATE (okno przesuwne LZ77 + kodowanie Huffmana)
Kolejność bajtów (Endianness)Liczby całkowite nagłówka i stopki w formacie Little-Endian
Przestrzenie kolorówNie dotyczy (Kontener archiwum)
Kanały i strukturaStrumień bajtów skompresowanych dla pojedynczego pliku
Maks. wymiaryNieskompresowany rozmiar rejestrowany modulo 2^32 (obsługuje nieograniczone długości strumieni)
Przezroczystość100% bezstratne zachowanie danych, bit w bit
Streaming i progresywne ładowanieSekwencyjne odtwarzanie strumieniowe w jednym przebiegu przez potoki i sieci HTTP

Techniczna macierz porównawcza: GZ a konkurencja

Atrybut technicznyGZ (Bieżący)BZ2BROTLIZSTD
Prędkość dekompresjiSzybka (~300 MB/s)Wolna (~40 MB/s)Bardzo szybka (~400 MB/s)Niezwykle szybka (>1,5 GB/s)
Szerokie zastosowanie w sieci100% wszystkich przeglądarek i serwerówBrak obsługi w przeglądarkach internetowychObsługiwane przez HTTPS we wszystkich przeglądarkachCoraz więcej przeglądarek i serwerów obsługuje ten format
Pakowanie wielu plikówWymaga kontenera TAR (.tar.gz)Wymaga kontenera TAR (.tar.bz2)Surowy strumień lub niestandardowy kontenerWymaga kontenera TAR (.tar.zst)
Weryfikacja sumy kontrolnej32-bitowe CRC (CRC-32)32-bitowe CRC dla każdego blokuBrak wbudowanych funkcji w strumieniu64-bitowa xxHash

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Błąd rozpakowywania: „gzip: stdin: unexpected end of file”.

Główna przyczyna: Transfer pliku zakończył się przedwcześnie, przez co strumień DEFLATE lub 8-bajtowy blok końcowy CRC32 nie został w całości przesłany.

Odzyskiwanie: Wyodrębnij część zawartości za pomocą polecenia „gzip -d --keep broken.gz” lub narzędzia Gzip Extractor w File2File.app.

Analiza bezpieczeństwa i wektory ataku na parser

Parsery Gzip przetwarzają nagłówki kontrolowane przez użytkownika i strumienie bitów DEFLATE; należy je zabezpieczyć przed atakami z użyciem bomb dekompresyjnych.

Znane wektory ataku

  • Bomba dekompresyjna (bomba zip) rozszerzająca megabajty danych Gzip do setek gigabajtów przestrzeni dyskowej.
  • Przepełnienie bufora podczas odczytu opcjonalnego ciągu oryginalnej nazwy pliku z nagłówka.
  • Przepełnienie liczby całkowitej podczas porównywania 32-bitowej sumy kontrolnej CRC.

Najlepsze praktyki obronne: W zautomatyzowanych usługach przetwarzających dane egzekwuj ścisłe limity dekompresji i maksymalnego zużycia pamięci.

Pochodzenie historyczne i kamienie milowe

1996IETF formalizuje specyfikację formatu pliku Gzip jako RFC 1952.
1993Projekt GNU przyjmuje Gzip, by zastąpić nim własnościowe uniksowe narzędzie „compress” (pliki .Z).
1992Jean-loup Gailly i Mark Adler tworzą Gzip jako wolne od patentów narzędzie kompresji dla ruchu wolnego oprogramowania.

Główne zalety

  • Uniwersalny wzorzec internetowej kompresji HTTP („Content-Encoding: gzip") obsługiwany przez 100% klientów sieci web.
  • Zachowuje oryginalne znaczniki czasu modyfikacji pliku oraz opcjonalne oryginalne nazwy plików wewnątrz 10-bajtowego nagłówka.
  • Niewielkie obciążenie procesora podczas dekompresji pozwala płynnie działać na urządzeniach mobilnych o małej mocy i routerach.

Ograniczenia techniczne i wady

  • Kompresja tylko dla pojedynczych plików: nie można skompresować wielu plików lub katalogów bez uprzedniego spakowania ich do kontenera TAR.
  • Gorszy współczynnik kompresji współczesnych tekstowych zasobów internetowych niż w nowszych algorytmach, takich jak Brotli i Zstandard.
  • Pole rozmiaru nieskompresowanych danych w bloku końcowym ma 32 bity i zapisuje wartość modulo 2^32, co powoduje błędy wyświetlania dla plików większych niż 4 GB.

Ciekawe informacje techniczne

  • Bajty sygnatury 0x1F 0x8B wybrano dlatego, że 0x1F był historycznie pierwszym bajtem plików uniksowego narzędzia „compress”, a 0x8B oznaczał Gzip.
  • Ponad 80% wszystkich stron internetowych korzysta z kompresji Gzip, aby dostarczać ich zawartość przeglądarkom.
  • Jean-loup Gailly napisał kod kompresji, podczas gdy Mark Adler napisał kod dekompresji (inflate); obaj otrzymali nagrodę ACM Software System Award.

Często zadawane pytania techniczne

Dlaczego nie mogę skompresować folderu za pomocą Gzip?

Gzip zaprojektowano do kompresji pojedynczego strumienia bajtów. Aby skompresować folder, systemy uniksowe najpierw łączą jego zawartość w jeden plik .tar, a następnie kompresują go Gzip, tworząc plik .tar.gz.

Jaka jest różnica między .gz a .zip?

.zip to format archiwum, który łączy wiele plików i zawiera indeks katalogu. .gz kompresuje tylko jeden plik i w systemach uniksowych jest często używany razem z tar.

Jak mogę zdekompresować plik .gz w systemie Windows lub Mac?

Użyj aplikacji File2File.app, aby natychmiast zdekompresować pliki .gz bezpośrednio w przeglądarce internetowej bez instalowania oprogramowania.