GZIP arhiiv (.gz)
IETF StandardGzip (GZ) on standardne GNU pakkimisutiliit ja failivorming, mida kasutatakse universaalselt Unixi operatsioonisüsteemides ja interneti HTTP-serverites failide ning veebivarade kiireks pakkimiseks.
Teisenda formaadist TAR formaati GZ
Tasuta TAR -> GZ konverter brauseris. Teisenda faile koheselt oma seadmes.
Kontrolli ja metaandmed
Operatsioonisüsteemid ja failianalüsaatorid tuvastavad GZ faile, kontrollides algset binaarset baidijada:
Baidi-taseme päise allkiri (maagilised baidid)
Operatsioonisüsteemid ja failianalüsaatorid tuvastavad GZ faile, kontrollides algset binaarset baidijada:
HEX-ALLKIRI (NIHE 0):
1F 8B 08ASCII-ESITUS: ..\x08
Standardiseerimine: IETF RFC 1952
Tehnilised andmed
| Konteineri arhitektuur | 10-byte header (magic 0x1F 0x8B, method 8, flags, mtime, OS) followed by DEFLATE stream and 8-byte footer |
| Tihendamine | DEFLATE algorithm (LZ77 sliding window + Huffman coding) |
| Baitide järjekord (Endianness) | Little-Endian header and footer integers |
| Värviruumid | N/A (Archive Container) |
| Kanalid ja struktuur | Single-file compressed byte stream |
| Max mõõtmed | Uncompressed size recorded modulo 2^32 (supports unbounded stream lengths) |
| Läbipaistvus | 100% bit-exact lossless data preservation |
| Voogedastus ja progressiivsus | Sequential single-pass streaming playback over pipes and HTTP networks |
Tehniline võrdlusmaatriks: GZ vs konkurendid
| Tehniline atribuut | GZ (Praegune) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Dekompressiooni kiirus | Kiire (~300 MB/s) | Aeglane (~40 MB/s) | Väga kiire (~400 MB/s) | Ülikiire (>1.5 GB/s) |
| Universaalne veebitugi | 100% kõigist brauseritest ja serveritest | Veebibrauseri tugi puudub | Toetatud HTTPS-i kaudu kõigis brauserites | Kasvav brauserite ja serverite tugi |
| Mitme faili pakkimine | Nõuab TAR-kontainerit (.tar.gz) | Nõuab TAR-kontainerit (.tar.bz2) | Toores voog või kohandatud kontainer | Nõuab TAR-kontainerit (.tar.zst) |
| Kontrollsumma kontroll | 32-bitine CRC (CRC-32) | Blokipõhine 32-bitine CRC | Voolus puudub sisseehitatud kontroll | 64-bitine xxHash |
Levinud riknemisvead ja heksataaste juhend
Lahtipakkimise viga: 'gzip: stdin: unexpected end of file'.
Juurpõhjus: Enneaegne failiedastuse katkestus, mis lõikas ära DEFLATE voo või 8-baidise CRC32 jaluse.
Taastamine: Eraldage osaline sisu käsu 'gzip -d --keep broken.gz' või File2File Gzip Extractor abil.
Turvaanalüüs ja parsimisründevektorid
Gzipi parserid töötlevad kasutaja kontrollitud päiseid ja DEFLATE bitivooge, mida tuleb kaitsta dekompressioonipommide eest.
Teadaolevad ründavektorid
- Dekompressioonipomm (zip bomb), mis paisutab megabaidid Gzipi andmeid sadadeks gigabaidideks kettaruumiks.
- Puhvri ületäitumine päisest valikulise algse failinime stringi lugemisel.
- Täisarvu ületäitumine 32-bitise CRC kontrollsumma võrdluse ajal.
Kaitsealased parimad tavad:
Ajalooline taust ja verstapostid
Peamised eelised
- Interneti HTTP-pakkimise universaalne etalon ('Content-Encoding: gzip'), mida toetavad 100% veebiklientidest.
- Säilitab 10-baidises päises algse faili muutmise ajatempli ja valikulise algse failinime.
- Kerge protsessorikoormus dekompressioonil, tagades sujuva töö väikese võimsusega mobiilseadmetes ja ruuterites.
Tehnilised piirangud ja puudused
- Ainult ühele failile mõeldud pakkimine: ei saa tihendada mitut faili ega kataloogi ilma neid eelnevalt TAR-kontainerisse pakkimata.
- Pakkimissuhe on tänapäevaste veebitekstide puhul madalam kui uuematel algoritmidel nagu Brotli ja Zstandard.
- Jaluses asuv pakkimata suuruse väli on 32-bitine modulo 2^32, mis põhjustab suuremate kui 4 GB failide korral kuva tõrkeid.
Huvitavaid tehnilisi fakte
- Maagilised baidid 0x1F 0x8B valiti seetõttu, et 0x1F oli ajalooliselt Unixi 'compress' failide esimene bait, samas kui 0x8B tuvastas Gzipi.
- Üle 80% kõigist interneti veebisaitidest kasutab Gzipi pakkimist veebilehtede edastamiseks brauseritele.
- Jean-loup Gailly kirjutas pakkimiskoodi, samas kui Mark Adler kirjutas dekompressiooni (inflate) koodi; mõlemad said ACM Software System Awardi auhinna.
Korduma kippuvad tehnilised küsimused
Miks ma ei saa kausta Gzipiga tihendada?
Gzip loodi ühtse baidivoo tihendamiseks. Kausta tihendamiseks pakivad Unixi süsteemid kausta esmalt üheks .tar-failiks ja tihendavad selle seejärel Gzipiga, et luua .tar.gz-fail.
Mis vahe on .gz- ja .zip-failil?
.zip on arhiivivorming, mis pakendab mitu faili kokku kataloogindeksiga. .gz pakib ainult ühe faili ja seda seostatakse Unixi süsteemides tavaliselt tar-iga.
Kuidas ma saan Windowsis või Macis .gz-faili lahti pakkida?
Kasutage rakendust File2File.app, et .gz-failid otse oma veebibrauseris silmapilkselt ja tarkvara installimata lahti pakkida.
Seotud GZ teisenduspaarid
TAR-arhiivi teisendamine GZIP-arhiiviks pakib tihendamata failikogumi üheks tihendatud vooguks, kasutades kadudeta DEFLATE-algoritmi, et failisuurust drastiliselt vähendada.
GZIP-iga tihendatud faili teisendamine TAR-arhiiviks eemaldab tihenduskihistiku, et paljastada failide ja kaustade toores ning tihendamata kogum.