Archiwum GZIP (.gz)
IETF StandardGzip (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:
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 08REPREZENTACJA ASCII: ..\x08
Normalizacja: IETF RFC 1952
Specyfikacja techniczna
| Architektura kontenera | 10-bajtowy nagłówek (sygnatura 0x1F 0x8B, metoda 8, flagi, mtime, OS), po którym następuje strumień DEFLATE i 8-bajtowy blok końcowy |
| Kompresja | Algorytm DEFLATE (okno przesuwne LZ77 + kodowanie Huffmana) |
| Kolejność bajtów (Endianness) | Liczby całkowite nagłówka i stopki w formacie Little-Endian |
| Przestrzenie kolorów | Nie dotyczy (Kontener archiwum) |
| Kanały i struktura | Strumień bajtów skompresowanych dla pojedynczego pliku |
| Maks. wymiary | Nieskompresowany rozmiar rejestrowany modulo 2^32 (obsługuje nieograniczone długości strumieni) |
| Przezroczystość | 100% bezstratne zachowanie danych, bit w bit |
| Streaming i progresywne ładowanie | Sekwencyjne odtwarzanie strumieniowe w jednym przebiegu przez potoki i sieci HTTP |
Techniczna macierz porównawcza: GZ a konkurencja
| Atrybut techniczny | GZ (Bieżący) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Prędkość dekompresji | Szybka (~300 MB/s) | Wolna (~40 MB/s) | Bardzo szybka (~400 MB/s) | Niezwykle szybka (>1,5 GB/s) |
| Szerokie zastosowanie w sieci | 100% wszystkich przeglądarek i serwerów | Brak obsługi w przeglądarkach internetowych | Obsługiwane przez HTTPS we wszystkich przeglądarkach | Coraz więcej przeglądarek i serwerów obsługuje ten format |
| Pakowanie wielu plików | Wymaga kontenera TAR (.tar.gz) | Wymaga kontenera TAR (.tar.bz2) | Surowy strumień lub niestandardowy kontener | Wymaga kontenera TAR (.tar.zst) |
| Weryfikacja sumy kontrolnej | 32-bitowe CRC (CRC-32) | 32-bitowe CRC dla każdego bloku | Brak wbudowanych funkcji w strumieniu | 64-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
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.