Arhivă GZIP (.gz)
IETF StandardGzip (GZ) este utilitarul standard de compresie GNU și formatul de fișier utilizat pe scară largă în sistemele de operare Unix și pe serverele HTTP pentru compresia rapidă a fișierelor și a activelor web.
Convertește din TAR în GZ
Convertor gratuit din TAR în GZ direct în browser. Convertește fișiere instantaneu pe dispozitivul tău.
Inspectare și metadate
Sistemele de operare și analizatoarele de fișiere identifică fișierele GZ prin inspectarea secvenței binare inițiale:
Semnătura antetului la nivel de octet (octeți magici)
Sistemele de operare și analizatoarele de fișiere identifică fișierele GZ prin inspectarea secvenței binare inițiale:
SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):
1F 8B 08REPREZENTARE ASCII: ..\x08
Standardizare: IETF RFC 1952
Specificații tehnice
| Arhitectură container | Antet de 10 octeți (semnătura 0x1F 0x8B, metoda 8, fanioane, mtime, sistem de operare), urmat de fluxul DEFLATE și un subsol de 8 octeți |
| Compresie | Algoritmul DEFLATE (fereastră glisantă LZ77 și codificare Huffman) |
| Ordinea octeților | Numere întregi Little-Endian în antet și subsol |
| Spații de culoare | Nu se aplică (container de arhivă) |
| Canale și structură | Flux de octeți comprimat pentru un singur fișier |
| Dimensiuni maxime | Dimensiunea necomprimată este înregistrată modulo 2^32 (acceptă fluxuri de lungime nelimitată) |
| Transparență | Păstrarea datelor fără pierderi, exactă la nivel de bit |
| Streaming și progresiv | Transmitere secvențială, într-o singură trecere, prin pipe-uri și rețele HTTP |
Matrice de comparație tehnică: GZ vs. concurenți
| Atribut tehnic | GZ (Curent) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Viteză de decompresie | Rapidă (~300 MB/s) | Lentă (~40 MB/s) | Foarte rapidă (~400 MB/s) | Extrem de rapidă (>1,5 GB/s) |
| Utilizare pe scară largă pe web | Compatibilitate largă în browsere și pe servere; codificarea conținutului este negociată pentru fiecare solicitare | Fără suport în browserul web | Acceptat de numeroase browsere prin HTTPS; compatibilitatea depinde de versiune | Suport în creștere în browsere și servere |
| Împachetare multi-fișier | Necesită container TAR (.tar.gz) | Necesită container TAR (.tar.bz2) | Flux brut sau container personalizat | Necesită container TAR (.tar.zst) |
| Verificare sumă de control | CRC pe 32 de biți (CRC-32) | CRC pe 32 de biți per bloc | Niciuna încorporată în flux | xxHash pe 64 de biți |
Moduri comune de corupție și ghid de recuperare hexazecimală
Eroare de extragere: „gzip: stdin: unexpected end of file”.
Cauză principală: Terminarea prematură a transferului de fișier întrerupe fluxul DEFLATE sau subsolul CRC32 de 8 octeți.
Recuperare: Extrage conținutul parțial cu „gzip -d --keep broken.gz” sau Gzip Extractor din File2File.app.
Analiză de securitate și vectori de atac asupra parserului
Analizoarele Gzip procesează antete controlate de utilizator și fluxuri de biți DEFLATE care trebuie protejate împotriva bombelor de decompresie.
Vectori de atac cunoscuți
- Bombă de decompresie (zip bomb) care extinde megaocteți de date Gzip în sute de gigaocteți de spațiu pe disc.
- Depășire de buffer (buffer overflow) la citirea șirului opțional cu numele de fișier original din antet.
- Depășire de întregi în timpul comparației de verificare CRC pe 32 de biți.
Cele mai bune practici de securitate: Impune limite stricte pentru cantitatea decomprimată și memoria disponibilă în serviciile de import automat.
Origini istorice și repere
Avantaje cheie și beneficii
- Codificare HTTP acceptată pe scară largă, deși clienții și serverele pot negocia alte codificări sau pot să nu folosească nicio compresie.
- Păstrează marcajele temporale originale de modificare a fișierului și numele de fișier originale opționale în antetul de 10 octeți.
- Amprentă CPU ușoară în timpul decompresiei, rulând fluent pe dispozitive mobile cu consum redus de energie și pe routere.
Limitări tehnice și dezavantaje
- Compresie doar pentru fișiere individuale: nu poate comprima mai multe fișiere sau directoare fără a le împacheta mai întâi într-un container TAR.
- Rata de compresie este mai mică decât cea a algoritmilor moderni precum Brotli și Zstandard pe textul web modern.
- Câmpul pentru dimensiunea necomprimată din subsol este pe 32 de biți modulo 2^32, cauzând erori de afișare la depășire la fișiere mai mari de 4 GB.
Curiozități tehnice interesante
- Octeții magici 0x1F 0x8B au fost aleși deoarece 0x1F era istoric primul octet al fișierelor „compress” din Unix, în timp ce 0x8B identifica Gzip.
- Gzip rămâne o opțiune frecventă pentru comprimarea răspunsurilor web; utilizarea variază în funcție de site și răspuns.
- Jean-loup Gailly a scris codul de compresie, în timp ce Mark Adler a scris codul de decompresie (inflate); amândoi au primit Premiul ACM pentru Sisteme Software.
Întrebări tehnice frecvente
De ce nu pot comprima un folder cu Gzip?
Gzip a fost conceput pentru a comprima un singur flux de octeți. Pentru a comprima un folder, sistemele Unix împachetează mai întâi folderul într-un singur fișier .tar, apoi îl comprimă cu Gzip pentru a crea un fișier .tar.gz.
Care este diferența dintre .gz și .zip?
.zip este un format de arhivă care împachetează mai multe fișiere împreună cu un index de director. .gz comprimă un singur fișier și este asociat în mod obișnuit cu tar pe sistemele Unix.
Cum pot dezarhiva un fișier .gz pe Windows sau Mac?
Folosește File2File.app pentru a decomprima imediat fișiere .gz direct în browser, fără să instalezi programe.