Wat is GZIP-compressie?
GZIP is een verliesvrij bestandscompressieformaat gedefinieerd door RFC 1952. Het verpakt een payload geproduceerd door het DEFLATE-algoritme (RFC 1951), dat LZ77-terugverwijzingen combineert met Huffman-codering om herhalende gegevens te verkleinen tot een compacte bytestroom.
Hoe werkt GZIP-compressie?
Je invoer wordt volledig in je browser verwerkt met de native CompressionStream('gzip')-API. De hoofdstappen zijn:
- De tool zet je tekst of bestand om in een bytestroom (UTF-8 voor tekstinvoer).
- Die bytes worden gestuurd door een
CompressionStreamdie is geconfigureerd voor hetgzip-formaat. - De browser past DEFLATE toe: een LZ77-doorloop met schuifvenster vindt herhalende reeksen, en Huffman-codering wijst kortere codes toe aan veelvoorkomende symbolen.
- Een 10-byte gzip-header en een 8-byte footer (CRC32 van de oorspronkelijke gegevens plus de oorspronkelijke lengte modulo 2^32) worden om de DEFLATE-payload gewikkeld, wat een standaard .gz-container oplevert.
- Het resultaat wordt weergegeven als Base64 of hex voor tekstinvoer, of aangeboden als downloadbaar .gz-bestand voor binaire invoer.
Waarom comprimeren met GZIP?
- Kleinere payloads: tekst, JSON, HTML, CSS en broncode krimpen doorgaans tot een fractie van hun oorspronkelijke grootte.
- Industriestandaard: GZIP wordt begrepen door vrijwel elke HTTP-server, CDN, browser, archieftool en standaardbibliotheek van programmeertalen.
- Privacy: de compressie gebeurt volledig in je browser. De invoer bereikt onze servers nooit.
- Geschikt voor heen-en-weer: de uitvoer decomprimeert met de CLI
gunzip, met HTTPContent-Encoding: gzipen met elke RFC 1952-lezer in Python, Node.js, Go, Java of Rust.
Wat zijn veelvoorkomende toepassingen van GZIP-compressie?
GZIP wordt overal op het web en in command-line tooling gebruikt:
- HTTP-overdracht: webservers comprimeren reacties met GZIP zodat pagina's sneller over het netwerk laden.
- Logs archiveren: langdurige serverlogs worden opgeslagen als .gz-bestanden om schijfgebruik te beperken.
- Back-ups en bundels: tarballs (.tar.gz) comprimeren hele directory-bomen voor draagbare distributie.
Hoe ziet een voorbeeld van GZIP-compressie eruit?
Een JSON-document van 1 KB met veel herhaalde veldnamen comprimeert vaak tot ongeveer 200–300 bytes — een grootteafname van vier tot vijf keer. Grote tekstlogs comprimeren vaak 90% of meer. Reeds gecomprimeerde invoer (JPEG, PNG, MP4, ZIP) krimpt niet verder en kan zelfs een paar bytes groeien door de GZIP-framing.
Deze GZIP-compressor produceert standaard RFC 1952-uitvoer rechtstreeks in je browser. Of je nu een payload verkleint vóór verzending of een .gz-bestand voor archivering aanmaakt, het resultaat is compatibel met elke GZIP-bewuste tool op het netwerk.