Che cos’è la compressione GZIP?
GZIP è un formato di compressione file senza perdita di dati definito dalla RFC 1952. Avvolge un payload prodotto dall'algoritmo DEFLATE (RFC 1951), che combina i riferimenti all'indietro LZ77 con la codifica Huffman per ridurre i dati ripetitivi in un flusso di byte compatto.
Come funziona la compressione GZIP?
Il tuo input viene elaborato interamente nel browser tramite l'API nativa CompressionStream('gzip'). I passaggi principali sono:
- Lo strumento converte il tuo testo o file in un flusso di byte (UTF-8 per l'input di testo).
- Quei byte vengono inviati a un
CompressionStreamconfigurato per il formatogzip. - Il browser applica DEFLATE: una passata LZ77 a finestra scorrevole trova sequenze ripetute e la codifica Huffman assegna codici più brevi ai simboli più comuni.
- Intorno al payload DEFLATE vengono avvolti un'intestazione gzip di 10 byte e un footer di 8 byte (CRC32 dei dati originali più la lunghezza originale modulo 2^32), producendo un contenitore .gz standard.
- Il risultato viene mostrato come Base64 o esadecimale per l'input di testo, oppure offerto come file .gz scaricabile per l'input binario.
Perché comprimere con GZIP?
- Payload più piccoli: testo, JSON, HTML, CSS e codice sorgente di solito si riducono a una frazione delle dimensioni originali.
- Standard del settore: GZIP è compreso praticamente da ogni server HTTP, CDN, browser, strumento di archiviazione e libreria standard dei linguaggi di programmazione.
- Privacy: la compressione avviene interamente nel tuo browser. L'input non raggiunge mai i nostri server.
- Pronto per il round-trip: l'output si decomprime con la CLI
gunzip, con HTTPContent-Encoding: gzipe con qualsiasi lettore RFC 1952 in Python, Node.js, Go, Java o Rust.
Quali sono le applicazioni comuni della compressione GZIP?
GZIP è usato nel web e negli strumenti da riga di comando:
- Trasferimento HTTP: i server web comprimono le risposte con GZIP per far caricare le pagine più velocemente in rete.
- Archiviazione di log: i log del server a lunga durata vengono memorizzati come file .gz per ridurre l'uso del disco.
- Backup e bundle: i tarball (.tar.gz) comprimono interi alberi di directory per una distribuzione portabile.
Com’è fatto un esempio di compressione GZIP?
Un documento JSON da 1 KB con molti nomi di campo ripetuti si comprime tipicamente a circa 200–300 byte — una riduzione di dimensioni di quattro o cinque volte. I grandi log testuali si comprimono spesso del 90% o più. Gli input già compressi (JPEG, PNG, MP4, ZIP) non si ridurranno ulteriormente e potrebbero crescere di alcuni byte a causa dell'incapsulamento GZIP.
Questo compressore GZIP produce output standard RFC 1952 direttamente nel tuo browser. Che tu stia riducendo un payload prima della trasmissione o producendo un file .gz da archiviare, il risultato interagisce con ogni strumento compatibile con GZIP sulla rete.