Archiwum GZIP (.gz)
IETF StandardowyGzip (GZ) to standardowe uniksowe narzędzie kompresji i format pliku GNU, powszechnie wdrażane w systemach operacyjnych Unix i internetowych serwerach HTTP do szybkiej kompresji plików oraz 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 (magiczne 0x1F 0x8B, metoda 8, flagi, mtime, OS), po którym następuje strumień DEFLATE oraz 8-bajtowa stopka |
| 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% dokładna bitowo bezstratna zachowanie danych |
| 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) |
| Uniwersalna adopcja w sieci web | 100% wszystkich przeglądarek i serwerów | Brak obsługi w przeglądarkach internetowych | Obsługiwane przez HTTPS we wszystkich przeglądarek | Rosnąca obsługa przez przeglądarki i serwery |
| 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 wyodrębniania: „gzip: stdin: unexpected end of file".
Główna przyczyna: Przedwczesne zakończenie transferu pliku odcinające strumień DEFLATE lub 8-bajtową stopkę CRC32.
Odzyskiwanie: Wyodrębnij częściową zawartość za pomocą polecenia „gzip -d --keep broken.gz" lub ekstraktoza Gzip w File2File.
Analiza bezpieczeństwa i wektory ataku na parser
Analizatory Gzip przetwarzają kontrolowane przez użytkownika nagłówki i strumienie bitów DEFLATE, które muszą być chronione przed bombami dekompresyjnymi.
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: Wymuś surowe kwoty dekompresji i limity górne pamięci w zautomatyzowanych usługach pozyskiwania danych.
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.
- Lekkie obciążenie procesora podczas dekompresji, działające płynnie na urządzeniach mobilnych o niskiej 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.
- Stopień kompresji jest niższy niż w przypadku nowoczesnych algorytmów, takich jak Brotli i Zstandard, na współczesnym tekście internetowym.
- Pole nieskompresowanego rozmiaru w stopce ma 32 bity modulo 2^32, co powoduje błędy wyświetlania po przekroczeniu dla plików większych niż 4 GB.
Ciekawe informacje techniczne
- Magiczne bajty 0x1F 0x8B zostały wybrane, ponieważ 0x1F historycznie było pierwszym bajtem plików „compress" systemu Unix, podczas gdy 0x8B identyfikowało Gzip.
- Ponad 80% wszystkich stron internetowych w sieci korzysta z kompresji Gzip do dostarczania stron internetowych do przeglądarek.
- 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 został zaprojektowany do kompresji pojedynczego strumienia bajtów. Aby skompresować folder, systemy uniksowe najpierw pakują folder do pojedynczego pliku .tar, a następnie kompresują go za pomocą Gzip, aby utworzyć plik .tar.gz.
Jaka jest różnica między .gz a .zip?
.zip to format archiwum, który pakuje wiele plików razem z indeksem katalogu. .gz kompresuje tylko pojedynczy plik i jest powszechnie łączony z programem tar w systemach uniksowych.
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.
Powiązane pary konwersji GZ
Konwersja archiwum TAR na archiwum GZIP łączy nieskompresowaną kolekcję plików w jeden strumień kompresowany za pomocą bezstratnego algorytmu DEFLATE w celu drastycznego zmniejszenia rozmiaru pliku.
Konwersja pliku skompresowanego w formacie GZIP na archiwum TAR usuwa warstwę kompresji, aby odsłonić surową, nieskompresowaną kolekcję plików i folderów.