gzip (DEFLATE)
Guarda come gzip riduce il testo: le ripetizioni diventano copie brevi e i codici di Huffman danno meno bit ai simboli frequenti.
- 32 KB
- 3-258 byte
- fino a 15 bit
- cornice gzip 18 byte
Finestra: fin dove il compressore può guardare indietro per trovare una ripetizione. 32 KB in gzip, fino a 16 MB in Brotli.
Copia: una lunghezza e una distanza che significano "prendi tanti caratteri da tanto indietro". Può sovrapporsi al testo che produce.
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.
Altri termini in questa pagina
- Letterale: un carattere scritto così com'è, perché nella sua posizione non inizia nessuna ripetizione di 3 o più caratteri.
- Senza prefissi: nessun codice è l'inizio di un altro, quindi una sequenza di codici si può rileggere senza separatori.
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.