GZIP-naar-Deflate-converter
Bij conversie van een GZIP-stream naar raw DEFLATE worden de buitenste bestandsomhulling en de koptekstmetadata verwijderd. Alleen de gecomprimeerde gegevens blijven over, voor gebruik met gespecialiseerde netwerkprotocollen en archieven op laag niveau.
Formaatvergelijking en technische specificaties
| Specificatie | GZIP | DEFLATE |
|---|---|---|
| MIME-type | application/ | application/ |
| Type | DEFLATE-stroomcontainer | onbewerkte DEFLATE-stroom |
| Compressie | DEFLATE (RFC 1951) | LZ77 + Huffmancodering |
| Standaardspecificatie | IETF RFC 1952 | IETF RFC 1950 / RFC 1951 |
| Bestandshandtekening (magic bytes) | 1F 8B (gzip ID1/ID2) | 78 01 / 78 9C / 78 DA (zlib header bytes) |
Formaatoverzicht en toepassingen
Conversie van een GZIP-stream naar raw DEFLATE komt vaak voor bij webontwikkeling, netwerkprogrammering en gegevensopslag op laag niveau. Ontwikkelaars werken vaak met GZIP wanneer ze losse bestanden op schijf opslaan, omdat het formaat handige metadata bevat, zoals de oorspronkelijke bestandsnamen en wijzigingstijdstippen. Moderne HTTP-compressieprotocollen en specifieke binaire formaten verwachten echter alleen de gecomprimeerde gegevens, zonder omhullende bytes. Met deze conversie kunnen technici standaard gecomprimeerde gegevens rechtstreeks in netwerkstreams of aangepaste parsers invoeren. Voor het bouwen van een eigen HTTP-responsafhandelaar of het werken met ZIP-archieven moeten bijvoorbeeld vaak de GZIP-koptekst en CRC32-voettekst worden verwijderd om de ruwe uitvoer van het algoritme te isoleren. Het verwijderen van deze extra containergegevens vermindert de overhead wanneer elke byte telt in programmeeromgevingen met beperkte middelen.
Technische specificaties en codec-overzicht
Een GZIP-stream met het MIME-type application/gzip gebruikt een containerstructuur die is gedefinieerd in RFC 1952. De stream begint met een koptekst met het tweebyte-magic number (0x1F, 0x8B), gevolgd door compressievlaggen, de wijzigingstijd, de besturingssysteem-id en een optionele bestandsnaam. De gecomprimeerde gegevens staan in het midden. Het bestand eindigt met een CRC32-controlesom van vier bytes en een indicator van vier bytes voor de ongecomprimeerde grootte. Raw DEFLATE is daarentegen een RFC 1951-bitstream zonder vaste handtekening, framingkoptekst of voettekst. Het MIME-type application/zlib beschrijft een RFC 1950 zlib-omhulling rond DEFLATE, geen raw DEFLATE-stream. Bij conversie van GZIP naar raw DEFLATE worden de GZIP-metadata en controlesom verwijderd, terwijl de gecomprimeerde gegevens behouden blijven.
Besturingssysteem- en browserondersteuning
Raw DEFLATE-streams werken rechtstreeks op moderne besturingssystemen en in webruntimes via gangbare programmeertalen zoals Python, Node.js en C++. Browsers verwerken DEFLATE rechtstreeks via de HTTP content-encoding-koptekst. Besturingssystemen zoals Windows, macOS en Linux ondersteunen raw DEFLATE-streams via systeemcompressiebibliotheken zoals zlib. Mobiele platforms zoals Android en iOS bieden directe API-toegang tot DEFLATE-routines voor aangepaste opslaglagen in apps.
Handige informatie
Controleer altijd of uw doelparser een pure RFC 1951-stream verwacht in plaats van een stream met een zlib-omhulling. Zlib voegt namelijk een koptekst van twee bytes toe die raw-DEFLATE-parsers afwijzen.
Veelgestelde vragen
Hoe converteert u een GZIP-stream naar Raw DEFLATE zonder kwaliteitsverlies?
Beide formaten gebruiken identieke verliesvrije compressiealgoritmen. Converteren houdt eenvoudigweg in dat de GZIP-container wordt gelezen, de koptekst van tien bytes en de voettekst van acht bytes worden verwijderd en de interne gecomprimeerde blokken worden opgeslagen. Er gaan geen gegevens verloren, omdat het onderliggende algoritme ongewijzigd blijft.
Wat is het verschil tussen een GZIP-stream en Raw DEFLATE?
GZIP is een volledige bestandscontainer met een koptekst met magic bytes, oorspronkelijke bestandsnamen, wijzigingstijdstippen en een voettekst met een controlesom. Raw DEFLATE bevat alleen de gecomprimeerde gegevens zelf, zonder kopteksten, voetteksten of bestandsmetadata.