Developer Toolbox

gzip (DEFLATE)

Guarda come gzip riduce il testo: le ripetizioni diventano copie brevi e i codici di Huffman danno meno bit ai simboli frequenti.

  • Finestra: 32 KB
  • Copie: 3-258 byte
  • Codici: fino a 15 bit
  • Cornice gzip: 18 byte
Cosa significano questi termini?
  • Letterale: un carattere scritto così com'è, perché nella sua posizione non inizia nessuna ripetizione di 3 o più caratteri.
  • Copia: una lunghezza e una distanza che significano "prendi tanti caratteri da tanto indietro". Può sovrapporsi al testo che produce.
  • Finestra: fin dove il compressore può guardare indietro per trovare una ripetizione. 32 KB in gzip, fino a 16 MB in Brotli.
  • Codice di Huffman: un codice di bit per ogni simbolo, più breve per i simboli frequenti, costruito con un albero che unisce più volte i due simboli più rari.
  • Senza prefissi: nessun codice è l'inizio di un altro, quindi una sequenza di codici si può rileggere senza separatori.
LZ77 e Huffman, passo passo 0 / 19 passi

Il testo ha 23 caratteri, 184 bit senza compressione. Il compressore lo legge da sinistra a destra e a ogni posizione si chiede se ciò che segue è già comparso prima.

Spazio: riproduci o metti in pausa. Frecce sinistra e destra: passo passo. Home e Fine: salta.

Prova così: Scrivi la stessa lettera molte volte. Una sola copia con distanza 1 le copre tutte, perché una copia può sovrapporsi al testo che produce.

Come funziona

gzip applica DEFLATE in due fasi. LZ77 scorre il testo e, a ogni posizione, cerca la sequenza di byte più lunga già comparsa negli ultimi 32 KB; invece di ripeterli scrive una coppia: quanti byte copiare (3-258) e quanto indietro si trovano. Quello che resta, i letterali e quelle coppie, viene poi scritto con codici di Huffman, dove i simboli frequenti ricevono codici brevi e quelli rari codici lunghi. gzip racchiude il risultato tra un'intestazione di 10 byte e una coda di 8 byte con un checksum CRC-32.

Quando conviene usarlo

gzip comprime il testo che si ripete: HTML, CSS, JavaScript, JSON, log, CSV. Lo capiscono tutti i browser e tutti i server, è veloce a ogni livello ed è la scelta sicura per comprimere le risposte al volo. I dati già compressi, come JPEG, PNG, WOFF2 o ZIP, non hanno più ripetizioni, quindi gzip aggiunge soltanto la sua intestazione e la sua coda.

Sul tuo testo

Le stesse due fasi, eseguite dal vero gzip (livello 6) su un testo più lungo. Incolla il tuo o portane uno dallo strumento Compressione gzip e Brotli.

Input