Archiv GZIP (.gz)
IETF StandardníGzip (GZ) je standardní GNU kompresní nástroj a souborový formát, který je nasazen v unixových operačních systémech a internetových serverech HTTP pro rychlou kompresi souborů a webových dat.
Převést TAR na GZ
Bezplatný konvertor z TAR do GZ v prohlížeči. Převeďte soubory okamžitě ve svém zařízení.
Kontrola a metadata
Operační systémy a analyzátory souborů identifikují soubory GZ kontrolou počáteční binární sekvence bajtů:
Podpis hlavičky na úrovni bajtů (Magic Bytes)
Operační systémy a analyzátory souborů identifikují soubory GZ kontrolou počáteční binární sekvence bajtů:
HEXADECIMÁLNÍ PODPIS (POSUN 0):
1F 8B 08ASCII REPREZENTACE: ..\x08
Standardizace: IETF RFC 1952
Technické specifikace
| Architektura kontejneru | 10bajtová hlavička (signatura 0x1F 0x8B, metoda 8, příznaky, čas změny, OS), za níž následuje proud DEFLATE a 8bajtová patička |
| Komprese | Algoritmus DEFLATE (posuvné okno LZ77 + Huffmanovo kódování) |
| Pořadí bajtů | Celočíselné hodnoty hlavičky a patičky v pořadí little-endian |
| Barevné prostory | Nevztahuje se (archivní kontejner) |
| Kanály a struktura | Jednosouborový komprimovaný bajtový proud |
| Max. rozměry | Nekomprimovaná velikost se zaznamenává modulo 2^32 (délka proudu není omezená) |
| Průhlednost | 100% bezztrátové zachování dat bit po bitu |
| Streamování a progresivní načítání | Sekvenční jednorázové streamování přes roury a sítě HTTP |
Technická srovnávací matice: GZ vs konkurence
| Technický atribut | GZ (Aktuální) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Rychlost dekomprese | Rychlá (~300 MB/s) | Pomalá (~40 MB/s) | Velmi rychlá (~400 MB/s) | Ultra rychlá (>1,5 GB/s) |
| Široké použití na webu | Široká podpora v prohlížečích a serverech; kódování obsahu se vyjednává pro každý požadavek | Nulová podpora webových prohlížečů | Podporováno v mnoha prohlížečích přes HTTPS; podpora závisí na verzi | Rostoucí podpora prohlížečů a serverů |
| Vícesouborové balení | Vyžaduje kontejner TAR (.tar.gz) | Vyžaduje kontejner TAR (.tar.bz2) | Surový proud nebo vlastní kontejner | Vyžaduje kontejner TAR (.tar.zst) |
| Ověření kontrolního součtu | 32bitové CRC (CRC-32) | 32bitové CRC pro každý blok | Proud nemá žádný vestavěný kontrolní součet | 64bitové xxHash |
Běžné režimy poškození a příručka pro obnovení v hex
Chyba extrakce: „gzip: stdin: unexpected end of file“.
Hlavní příčina: Předčasné ukončení přenosu souboru, které přerušilo proud DEFLATE nebo 8bajtovou patičku CRC32.
Obnovení: Extrahujte částečný obsah pomocí příkazu „gzip -d --keep broken.gz" nebo použijte File2File.app Gzip Extractor.
Bezpečnostní analýza a vektory útoků na parser
Analyzátory Gzip zpracovávají záhlaví řízená uživatelem a bitové proudy DEFLATE, které je nutné chránit před dekompresními bombami.
Známé vektory útoků
- Dekompresní bomba (zip bomb), která rozbalí megabyty dat Gzip na stovky gigabajtů místa na disku.
- Přetečení vyrovnávací paměti při čtení volitelného řetězce původního názvu souboru z hlavičky.
- Celočíselné přetečení při porovnávání 32bitového kontrolního součtu CRC.
Doporučené bezpečnostní postupy: V automatizovaných službách pro příjem dat vynuťte přísné dekompresní kvóty a limity horní hranice paměti.
Historický vývoj a milníky
Klíčové výhody a přednosti
- Kódování obsahu HTTP se široce podporovanou kompresí; klienti a servery se však mohou dohodnout na jiném kódování nebo nepoužít kompresi.
- Zachovává původní časová razítka úprav souborů a volitelné původní názvy souborů uvnitř 10bajtové hlavičky.
- Nenáročnost na procesor během dekomprese, což umožňuje plynulý chod na nízkovýkonných mobilních zařízeních a routerech.
Technická omezení a nevýhody
- Pouze jednosouborová komprese: nelze komprimovat více souborů nebo adresářů bez předchozího zabalení do kontejneru TAR.
- Kompresní poměr je u moderních webových textů nižší než u moderních algoritmů, jako jsou Brotli a Zstandard.
- Pole velikosti nekomprimovaných dat v patičce je 32bitové modulo 2^32, což způsobuje chyby přetečení zobrazení u souborů větších než 4 GB.
Zajímavé technické drobnosti
- Magické bajty 0x1F 0x8B byly zvoleny proto, že 0x1F byl historicky prvním bajtem unixových souborů „compress“, zatímco 0x8B identifikoval Gzip.
- Gzip se stále běžně používá ke kompresi webových odpovědí; jeho rozšíření se liší podle webu a typu odpovědi.
- Jean-loup Gailly napsal kompresní kód, zatímco Mark Adler napsal dekompresní kód (inflate); oba obdrželi ocenění ACM Software System Award.
Často kladené technické otázky
Proč nemohu komprimovat složku pomocí Gzip?
Gzip byl navržen pro kompresi jediného proudu bajtů. Pro kompresi složky systémy Unix nejprve složku zabalí do jednoho souboru .tar a poté soubor zkomprimují pomocí Gzipu, čímž vznikne soubor .tar.gz.
Jaký je rozdíl mezi .gz a .zip?
.zip je archivní formát, který sdružuje více souborů dohromady s indexem adresáře. .gz komprimuje pouze jeden soubor a v systémech Unix se běžně používá v kombinaci s nástrojem tar.
Jak mohu dekomprimovat soubor .gz ve Windows nebo Macu?
Použijte aplikaci File2File.app k okamžité dekompresi souborů .gz přímo ve vašem webovém prohlížeči bez nutnosti instalace jakéhokoli softwaru.