Archivio GZIP (.gz)
IETF StandardGzip (GZ) è l'utilità e il formato di file di compressione GNU standard, distribuito universalmente su sistemi operativi Unix e server web HTTP per la compressione rapida di file e risorse web.
Converti da TAR a GZ
Convertitore gratuito da TAR a GZ nel browser. Converti i file istantaneamente sul tuo dispositivo.
Ispeziona e metadati
I sistemi operativi e gli analizzatori di file identificano i file GZ ispezionando la sequenza di byte binari iniziale:
Firma dell'intestazione a livello di byte (Magic Bytes)
I sistemi operativi e gli analizzatori di file identificano i file GZ ispezionando la sequenza di byte binari iniziale:
FIRMA ESADECIMALE (OFFSET 0):
1F 8B 08RAPPRESENTAZIONE ASCII: ..\x08
Standardizzazione: IETF RFC 1952
Specifiche tecniche
| Architettura del container | Intestazione di 10 byte (magic 0x1F 0x8B, metodo 8, flag, mtime, OS) seguita dallo stream DEFLATE e da un piè di pagina di 8 byte |
| Compressione | Algoritmo DEFLATE (finestra scorrevole LZ77 + codifica di Huffman) |
| Endianness dei byte | Intestazione e piè di pagina interi in formato Little-Endian |
| Spazi colore | N/A (Contenitore di Archiviazione) |
| Canali e struttura | Flusso di byte compressi a file singolo |
| Dimensioni massime | Dimensione non compressa registrata modulo 2^32 (supporta lunghezze di stream illimitate) |
| Trasparenza | Conservazione dei dati lossless al 100% bit-esatta |
| Streaming e progressivo | Riproduzione in streaming sequenziale a passaggio singolo su pipe e reti HTTP |
Matrice di confronto tecnico: GZ vs Concorrenti
| Attributo tecnico | GZ (Corrente) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Velocità di Decompressione | Veloce (~300 MB/s) | Lenta (~40 MB/s) | Molto veloce (~400 MB/s) | Ultra-veloce (>1.5 GB/s) |
| Adozione Web Universale | 100% di tutti i browser e server | Nessun supporto nei browser web | Supportato tramite HTTPS in tutti i browser | Supporto crescente su browser e server |
| Packaging Multi-File | Richiede un contenitore TAR (.tar.gz) | Richiede un contenitore TAR (.tar.bz2) | Stream grezzo o contenitore personalizzato | Richiede un contenitore TAR (.tar.zst) |
| Verifica del Checksum | CRC a 32-bit (CRC-32) | CRC a 32-bit per blocco | Nessuno integrato nello stream | xxHash a 64-bit |
Modalità di corruzione comuni e guida al recupero Hex
Errore di estrazione: 'gzip: stdin: unexpected end of file'.
Causa principale: Terminazione prematura del trasferimento del file che interrompe lo stream DEFLATE o il piè di pagina CRC32 di 8 byte.
Ripristino: Estrarre i contenuti parziali utilizzando 'gzip -d --keep broken.gz' o File2File Gzip Extractor.
Analisi di sicurezza e vettori di attacco del parser
I parser Gzip elaborano intestazioni controllate dall'utente e flussi di bit DEFLATE che devono essere protetti contro le bombe di decompressione.
Vettori di attacco noti
- Bomba di decompressione (zip bomb) che espande megabyte di dati Gzip in centinaia di gigabyte di spazio su disco.
- Buffer overflow durante la lettura della stringa opzionale del nome file originale dall'intestazione.
- Overflow di interi durante il confronto del controllo CRC a 32-bit.
Migliori pratiche difensive: Applicare quote di decompressione rigorose e limiti di soglia della memoria nei servizi di inserimento automatici.
Origini storiche e tappe fondamentali
Vantaggi principali e pro
- Il punto di riferimento universale per la compressione HTTP sul web ('Content-Encoding: gzip') supportato dal 100% dei client web.
- Conserva i timestamp di modifica originali del file e i nomi file originali opzionali all'interno dell'intestazione di 10 byte.
- Impatto ridotto sulla CPU durante la decompressione, eseguendosi fluidamente su dispositivi mobili a basso consumo e router.
Limiti tecnici e svantaggi
- Compressione a file singolo: non è possibile comprimere più file o directory senza prima raggrupparli in un contenitore TAR.
- Il rapporto di compressione è inferiore rispetto agli algoritmi moderni come Brotli e Zstandard sui testi web moderni.
- Il campo della dimensione non compressa nel piè di pagina è a 32-bit modulo 2^32, causando bug di rollover della visualizzazione su file di dimensioni superiori a 4 GB.
Curiosità tecniche interessanti
- I byte magici 0x1F 0x8B sono stati scelti perché 0x1F era storicamente il primo byte dei file 'compress' di Unix, mentre 0x8B identificava Gzip.
- Oltre l'80% di tutti i siti web su Internet utilizza la compressione Gzip per consegnare le pagine web ai browser.
- Jean-loup Gailly ha scritto il codice di compressione mentre Mark Adler ha scritto il codice di decompressione (inflate); entrambi hanno ricevuto il premio ACM Software System Award.
Domande tecniche frequenti
Perché non posso comprimere una cartella con Gzip?
Gzip è stato progettato per comprimere un singolo flusso di byte. Per comprimere una cartella, i sistemi Unix prima raggruppano la cartella in un singolo file .tar, quindi la comprimono con Gzip per creare un file .tar.gz.
Qual è la differenza tra .gz e .zip?
.zip è un formato di archivio che pacchettizza più file insieme a un indice di directory. .gz comprime solo un singolo file ed è comunemente associato a tar sui sistemi Unix.
Come posso decomprimere un file .gz su Windows o Mac?
Usa File2File.app per decomprimere istantaneamente i file .gz direttamente nel tuo browser web senza alcuna installazione di software.
Coppie di conversione per GZ correlate
La conversione di un archivio TAR in un archivio GZIP racchiude una raccolta di file non compressi in un unico flusso compresso utilizzando l'algoritmo DEFLATE senza perdita di dati per ridurre drasticamente le dimensioni del file.
La conversione di un file compresso GZIP in un archivio TAR rimuove lo strato di compressione per esporre la raccolta grezza e non compressa di file e cartelle.