Arhiv GZIP (.gz)
IETF StandardGzip (GZ) je standardni pripomoček in format datoteke za stiskanje GNU, ki se splošno uporablja v operacijskih sistemih Unix in internetnih strežnikih HTTP za hitro stiskanje datotek in spletnih virov.
Pretvori TAR v GZ
Brezplačen pretvornik iz TAR v GZ v brskalniku. Pretvorite datoteke takoj v svoji napravi.
Pregled in metapodatki
Operacijski sistemi in analizatorji datotek identificirajo datoteke GZ s pregledom vodilnega binarnega zaporedja bajtov:
Podpis glave na ravni bajtov (Čarobni bajti)
Operacijski sistemi in analizatorji datotek identificirajo datoteke GZ s pregledom vodilnega binarnega zaporedja bajtov:
PODPIS HEX (ZAMIK 0):
1F 8B 08REPREZENTACIJA ASCII: ..\x08
Standardizacija: IETF RFC 1952
Tehnične specifikacije
| Arhitektura vsebnika | 10-byte header (magic 0x1F 0x8B, method 8, flags, mtime, OS) followed by DEFLATE stream and 8-byte footer |
| Stiskanje | DEFLATE algorithm (LZ77 sliding window + Huffman coding) |
| Vrstni red bajtov | Little-Endian header and footer integers |
| Barvni prostori | N/A (Archive Container) |
| Kanali in struktura | Single-file compressed byte stream |
| Največje dimenzije | Uncompressed size recorded modulo 2^32 (supports unbounded stream lengths) |
| Prosojnost | 100% bit-exact lossless data preservation |
| Pretočno in progresivno predvajanje | Sequential single-pass streaming playback over pipes and HTTP networks |
Tehnična primerjalna matrika: GZ proti konkurenci
| Tehnični atribut | GZ (Trenutno) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Hitrost razširjanja | Hitro (~300 MB/s) | Počasno (~40 MB/s) | Zelo hitro (~400 MB/s) | Izjemno hitro (>1,5 GB/s) |
| Univerzalna spletna podpora | 100 % vseh brskalnikov in strežnikov | Brez podpore v spletnih brskalnikih | Podprto prek HTTPS v vseh brskalnikih | Naraščajoča podpora brskalnikov in strežnikov |
| Pakiranje več datotek | Zahteva vsebovalnik TAR (.tar.gz) | Zahteva vsebovalnik TAR (.tar.bz2) | Surovi pretok ali vsebovalnik po meri | Zahteva vsebovalnik TAR (.tar.zst) |
| Preverjanje vsote | 32-bitni CRC (CRC-32) | 32-bitni CRC na blok | Brez vgrajenega v pretok | 64-bitni xxHash |
Pogosti načini okvar in vodič za heksadecimalno obnovo
Napaka pri razširjanju: 'gzip: stdin: unexpected end of file'.
Glavni vzrok: Predčasna prekinitev prenosa datoteke, ki odreže pretok DEFLATE ali 8-bajtno nogo CRC32.
Sanacija: Izvlecite delne vsebine z ukazom 'gzip -d --keep broken.gz' ali uporabite ekstraktor File2File Gzip.
Varnostna analiza in napadalni vektorji razčlenjevalnika
Razčlenjevalniki Gzip obdelujejo glave, ki jih nadzoruje uporabnik, in bitne tokove DEFLATE, ki jih je treba zaščititi pred eksplozijami pri razširjanju.
Znani vektorji napada
- Eksplozija pri razširjanju (bomba zip), ki megabajte podatkov Gzip razširi v stotine gigabajtov prostora na disku.
- Prekoračitev medpomnilnika pri branju izbirnega niza izvirnega imena datoteke iz glave.
- Prekoračitev celih števil med primerjavo 32-bitnega preverjanja CRC.
Obrambne najboljše prakse:
Zgodovinski izvor in mejniki
Ključne prednosti
- Univerzalno merilo za internetno stiskanje HTTP ('Content-Encoding: gzip'), ki ga podpira 100 % spletnih odjemalcev.
- Ohranja prvotne časovne žige sprememb datotek in izbirna prvotna imena datotek znotraj 10-bajtne glave.
- Majhna poraba CPE med razširjanjem, gladko delovanje na mobilnih napravah z nizko porabo energije in usmerjevalnikih.
Tehnične omejitve in slabosti
- Stiskanje samo ene datoteke: ne more stisniti več datotek ali map, ne da bi jih najprej združili v vsebovalnik TAR.
- Razmerje stiskanja je nižje kot pri sodobnih algoritmih, kot sta Brotli in Zstandard, na sodobnem spletnem besedilu.
- Polje velikosti nestisnjenega dela v nogi je 32-bitno modulo 2^32, kar povzroča napake pri prikazu vrtenja v datotekah, večjih od 4 GB.
Zanimive tehnične malenkosti
- Magična bajta 0x1F 0x8B sta bili izbrani, ker je bil 0x1F zgodovinsko prvi bajt datotek Unix 'compress', medtem ko je 0x8B označeval Gzip.
- Več kot 80 % vseh spletnih mest na internetu uporablja stiskanje Gzip za dostavo spletnih strani brskalnikom.
- Jean-loup Gailly je napisal kodo za stiskanje, Mark Adler pa kodo za razširjanje (inflate); oba sta prejela nagrado ACM Software System Award.
Pogosta tehnična vprašanja
Zakaj ne morem stisniti mape z Gzip?
Gzip je zasnovan za stiskanje enega samega toka bajtov. Za stiskanje mape sistemi Unix najprej združijo mapo v eno datoteko .tar, nato pa jo stisnejo z Gzip, da ustvarijo datoteko .tar.gz.
Kakšna je razlika med .gz in .zip?
.zip je arhivski format, ki pakira več datotek skupaj z indeksom imenika. .gz stiska samo eno datoteko in se v sistemih Unix običajno uporablja v kombinaciji s tar.
Kako lahko dekompresiram datoteko .gz v sistemu Windows ali Mac?
Uporabite File2File.app za takojšnjo dekompresijo datotek .gz neposredno v spletnem brskalniku brez namestitve programske opreme.
Sorodni pari pretvorbe za GZ
Pretvorba arhiva TAR v arhiv GZIP ovije nestisnjeno zbirko datotek v en sam stisnjen tok z uporabo algoritma DEFLATE brez izgube za drastično zmanjšanje velikosti datoteke.
Pretvorba stisnjene datoteke GZIP v arhiv TAR odstrani plast stiskanja, da se razkrije surova, nestisnjena zbirka datotek in map.