GZIP arhiva (.gz)
IETF StandardGzip (GZ) je standardni GNU uslužni program i format datoteke za kompresiju, primenjen na Unix operativnim sistemima i internet HTTP serverima za brzu kompresiju datoteka i veb resursa.
Konvertujte TAR u GZ
Besplatan konvertor TAR u GZ u pregledaču. Konvertujte datoteke odmah na svom uređaju.
Pregled i metapodaci
Operativni sistemi i analizatori datoteka identifikuju GZ datoteke proverom početnog binarnog niza bajtova:
Potpis zaglavlja na nivou bajtova (magični bajtovi)
Operativni sistemi i analizatori datoteka identifikuju GZ datoteke proverom početnog binarnog niza bajtova:
HEKSADECIMALNI POTPIS (OFFSET 0):
1F 8B 08ASCII REPREZENTACIJA: ..\x08
Standardizacija: IETF RFC 1952
Tehničke specifikacije
| Arhitektura kontejnera | Zaglavlje od 10 bajtova (potpis 0x1F 0x8B, metod 8, zastavice, mtime, OS), zatim DEFLATE tok i podnožje od 8 bajtova |
| Kompresija | Algoritam DEFLATE (klizni LZ77 prozor i Huffmanovo kodiranje) |
| Bajtni redosled (Endianness) | Celobrojne vrednosti u zaglavlju i podnožju zapisane su redosledom bajtova od najmanje značajnog ka najznačajnijem |
| Prostori boja | Nije primenljivo (arhivski kontejner) |
| Kanali i struktura | Kompresovani bajtni tok jedne datoteke |
| Maksimalne dimenzije | Nekomprimovana veličina beleži se po modulu 2^32 (podržava neograničenu dužinu toka) |
| Transparentnost | Potpuno očuvanje podataka bez gubitaka i uz potpuno podudaranje bitova |
| Strimovanje i progresivno učitavanje | Sekvencijalni prenos u jednom prolazu preko cevi i HTTP mreža |
Tehnička matrica poređenja: GZ u odnosu na konkurente
| Tehnički atribut | GZ (Trenutno) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Brzina dekompresije | Brza (~300 MB/s) | Spora (~40 MB/s) | Vrlo brza (~400 MB/s) | Izuzetno brza (>1.5 GB/s) |
| Široka upotreba na vebu | Široka podrška u pregledačima i serverima; kodiranje sadržaja dogovara se za svaki zahtev | Nema podršku u veb pretraživačima | Podržano u mnogim pregledačima preko HTTPS-a; podrška zavisi od verzije | Rastuća podrška u pretraživačima i serverima |
| Pakovanje više datoteka | Zahteva TAR kontejner (.tar.gz) | Zahteva TAR kontejner (.tar.bz2) | Sirovi strim ili prilagođeni kontejner | Zahteva TAR kontejner (.tar.zst) |
| Verifikacija kontrolne sume | 32-bitni CRC (CRC-32) | 32-bitni CRC po bloku | Nema ugrađeno u strim | 64-bitni xxHash |
Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak
Greška pri ekstrakciji: 'gzip: stdin: unexpected end of file'.
Osnovni uzrok: Prevremeni prekid prenosa datoteke koji odseca DEFLATE strim ili 8-bajtno CRC32 podnožje.
Oporavak: Izvucite delimičan sadržaj pomoću komande 'gzip -d --keep broken.gz' ili File2File.app Gzip ekstraktera.
Bezbednosna analiza i vektori napada parsera
Gzip paseri obrađuju zaglavlja pod kontrolom korisnika i DEFLATE bitstrimove koji moraju biti zaštićeni od bombi dekompresije.
Poznati vektori napada
- Bomba dekompresije (zip bomba) koja širi megabajte Gzip podataka u stotine gigabajta prostora na disku.
- Prekoračenje bafera (buffer overflow) pri čitanju opcionalne niske originalnog imena datoteke iz zaglavlja.
- Prekoračenje celobrojne vrednosti tokom poređenja 32-bitne CRC provere.
Najbolje prakse za zaštitu: Nametnite stroge kvote dekompresije i granice memorije u automatizovanim servisima za unos podataka.
Istorijat i prekretnice
Ključne prednosti
- Široko podržano HTTP kodiranje sadržaja, mada klijenti i serveri mogu da dogovore drugo kodiranje ili da ne koriste kompresiju.
- Čuva originalne vremenske oznake izmena datoteke i opcionalna originalna imena datoteka unutar zaglavlja od 10 bajtova.
- Malo opterećuje procesor tokom dekompresije i nesmetano radi na mobilnim uređajima male snage i ruterima.
Tehnička ograničenja i nedostaci
- Kompresija samo jedne datoteke: ne može da kompresuje više datoteka ili direktorijuma bez prethodnog pakovanja u TAR kontejner.
- Odnos kompresije je niži u poređenju sa modernim algoritmima kao što su Brotli i Zstandard na modernom veb tekstu.
- Polje veličine nekompresovanog sadržaja u podnožju je 32-bitni ostatak po modulu 2^32, što uzrokuje greške u prikazu prekoračenja na datotekama većim od 4 GB.
Zanimljivosti
- Magični bajtovi 0x1F 0x8B izabrani su zato što je 0x1F istorijski bio prvi bajt Unix 'compress' datoteka, dok je 0x8B identifikovao Gzip.
- Gzip je i dalje uobičajen izbor za kompresiju veb-odgovora; njegova upotreba zavisi od sajta i sadržaja odgovora.
- Žan-Lup Gajli (Jean-loup Gailly) je napisao kod za kompresiju, dok je Mark Adler napisao kod za dekompresiju (inflate); obojica su dobili nagradu ACM Software System Award.
Često postavljana tehnička pitanja
Zašto ne mogu da kompresujem fasciklu (folder) pomoću Gzip-a?
Gzip je dizajniran da kompresuje jedan tok bajtova. Da bi kompresovali fasciklu, Unix sistemi prvo pakuju fasciklu u jednu .tar datoteku, a zatim je kompresuju pomoću Gzip-a da bi napravili .tar.gz datoteku.
Koja je razlika između .gz i .zip?
.zip je arhivski format koji pakuje više datoteka zajedno sa indeksom direktorijuma. .gz kompresuje samo jednu datoteku i obično se uparuje sa tar-om na Unix sistemima.
Kako mogu da dekompresujem .gz datoteku na Windows-u ili Mac-u?
Koristite File2File.app da trenutno dekompresujete .gz datoteke direktno u Vašem veb pretraživaču bez ikakve instalacije softvera.