GZIP-archief (.gz)
IETF StandaardGzip (GZ) is de compressietool van GNU en een veelgebruikt bestandsformaat op Unix-achtige systemen en HTTP-servers voor bestanden en webassets.
TAR naar GZ converteren
Gratis TAR-naar-GZ-converter in uw browser. Converteer bestanden direct op uw apparaat.
Inspecteren en metadata
Besturingssystemen en bestandsanalysators herkennen GZ-bestanden aan de hand van de eerste binaire bytesequentie:
Bestandshandtekening op byteniveau (magic bytes)
Besturingssystemen en bestandsanalysators herkennen GZ-bestanden aan de hand van de eerste binaire bytesequentie:
HEX-HANDTEKENING (OFFSET 0):
1F 8B 08ASCII-WEERGAVE: ..\x08
Standaardisatie: IETF RFC 1952
Technische specificaties
| Containerarchitectuur | Header van 10 bytes (bestandshandtekening 0x1F 0x8B, methode 8, vlaggen, mtime, OS), gevolgd door een DEFLATE-stream en een footer van 8 bytes |
| Compressie | DEFLATE-algoritme (LZ77-schuifvenster + Huffman-codering) |
| Bytevolgorde (endianness) | Little-Endian-integers voor header en footer |
| Kleurruimten | N.v.t. (archiefcontainer) |
| Kanalen en structuur | Gecomprimeerde bytestream voor één bestand |
| Maximale afmetingen | Niet-gecomprimeerde grootte geregistreerd modulo 2^32 (ondersteunt onbegrensde streamlengtes) |
| Transparantie | 100% bitexact, verliesvrij behoud van gegevens |
| Streaming en progressief | Sequentiële streaming in één doorgang via pipes en HTTP-netwerken |
Technische vergelijkingsmatrix: GZ versus concurrenten
| Technisch kenmerk | GZ (Huidig) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Decompressiesnelheid | Snel (~300 MB/s) | Traag (~40 MB/s) | Zeer snel (~400 MB/s) | Ultrasnel (>1,5 GB/s) |
| Breed webgebruik | Brede ondersteuning in browsers en servers; inhoudscodering wordt per verzoek onderhandeld | Geen ondersteuning in webbrowsers | Ondersteund door veel browsers via HTTPS; versieondersteuning verschilt | Groeiende browser- en serverondersteuning |
| Verpakking voor meerdere bestanden | Vereist een TAR-container (.tar.gz) | Vereist een TAR-container (.tar.bz2) | Onbewerkte stream of aangepaste container | Vereist een TAR-container (.tar.zst) |
| Controlesomverificatie | 32-bits CRC (CRC-32) | 32-bits CRC per blok | Geen ingebouwde controlesom | 64-bits xxHash |
Veelvoorkomende beschadigingen en gids voor hex-herstel
Uitpakfout: 'gzip: stdin: unexpected end of file'.
Oorzaak: Voortijdige beëindiging van de bestandsoverdracht, waardoor de DEFLATE-stream of de CRC32-footer van 8 bytes is afgekapt.
Herstel: Pak een deel van de inhoud uit met 'gzip -d --keep broken.gz' of met de Gzip Extractor van File2File.app.
Beveiligingsanalyse en aanvalsvectoren voor parsers
Gzip-parsers verwerken headers en DEFLATE-bitstreams die door de gebruiker worden bepaald en die moeten worden beschermd tegen decompressiebommen.
Bekende aanvalsvectoren
- Decompressiebom (zip bomb) die megabytes aan Gzip-gegevens uitbreidt tot honderden gigabytes aan schijfruimte.
- Bufferoverflow bij het lezen van de optionele tekenreeks met de oorspronkelijke bestandsnaam uit de header.
- Integeroverloop tijdens de vergelijking van de 32-bit CRC-controle.
Aanbevolen beveiligingspraktijken: Handhaaf strikte decompressiequota en geheugenlimieten in geautomatiseerde verwerkingsdiensten.
Historische oorsprong en mijlpalen
Belangrijkste voordelen
- Een veelgebruikte HTTP-inhoudscodering, al kunnen clients en servers per verzoek andere coderingen of geen compressie afspreken.
- Behoudt de oorspronkelijke tijdstempels van bestandswijzigingen en optionele oorspronkelijke bestandsnamen in de header van 10 bytes.
- De decompressie belast de CPU weinig en werkt soepel op mobiele apparaten met weinig vermogen en op routers.
Technische beperkingen
- Alleen compressie van één bestand: meerdere bestanden of mappen kunnen pas worden gecomprimeerd nadat ze eerst in een TAR-container zijn gebundeld.
- Compressieverhouding is lager dan bij moderne algoritmen zoals Brotli en Zstandard op moderne webtekst.
- Het veld voor de niet-gecomprimeerde grootte in de footer is 32-bits modulo 2^32, wat overloopfouten in de weergave veroorzaakt bij bestanden groter dan 4 GB.
Interessante technische weetjes
- De bestandshandtekening (magic bytes) 0x1F 0x8B is gekozen omdat 0x1F historisch gezien de eerste byte was van bestanden van Unix 'compress', terwijl 0x8B Gzip identificeerde.
- Gzip blijft een veelgebruikte keuze voor het comprimeren van webreacties; het gebruik verschilt per site en reactie.
- Jean-loup Gailly schreef de compressiecode terwijl Mark Adler de decompressiecode (inflate) schreef; beiden ontvingen de ACM Software System Award.
Veelgestelde technische vragen
Waarom kan ik geen map comprimeren met Gzip?
Gzip is ontworpen om één enkele bytestroom te comprimeren. Om een map te comprimeren, bundelen Unix-systemen de map eerst in een enkel .tar-bestand en comprimeren ze dit vervolgens met Gzip om een .tar.gz-bestand te maken.
Wat is het verschil tussen .gz en .zip?
.zip is een archiefformaat dat meerdere bestanden samenbundelt met een mapindex. .gz comprimeert slechts één bestand en wordt op Unix-systemen vaak gecombineerd met tar.
Hoe kan ik een .gz-bestand uitpakken op Windows of Mac?
Gebruik File2File.app om .gz-bestanden direct in uw webbrowser uit te pakken zonder software te installeren.
Gerelateerde conversieparen voor GZ
Het converteren van een TAR-archief naar een GZIP-archief verpakt een niet-gecomprimeerde verzameling bestanden in één gecomprimeerde stroom met het verliesvrije DEFLATE-algoritme, waardoor de bestandsgrootte drastisch kleiner wordt.
Pak TAR-data uit een GZIP-gecomprimeerd TAR-archief, zoals .tar.gz of .tgz.