GZIP archyvas (.gz)
IETF StandartinisGzip (GZ) yra standartinė GNU glaudinimo programa ir failo formatas, visuotinai diegiamas Unix operacinėse sistemose ir interneto HTTP serveriuose, skirtas greitam failų ir žiniatinklio išteklių glaudinimui.
Konvertuoti TAR į GZ
Nemokamas TAR į GZ konverteris naršyklėje. Konvertuokite failus akimirksniu savo įrenginyje.
Tikrinti ir metaduomenys
Operacinės sistemos ir failų analizatoriai atpažįsta GZ failus tikrindami pradinę dvejetainę baitų seką:
Baitų lygio antraštės parašas (magiškieji baitai)
Operacinės sistemos ir failų analizatoriai atpažįsta GZ failus tikrindami pradinę dvejetainę baitų seką:
ŠEŠIOLIKTAINIS PARAŠAS (POSLINKIS 0):
1F 8B 08ASCII ATVAIZDAVIMAS: ..\x08
Standartizacija: IETF RFC 1952
Techninės specifikacijos
| Konteinerio architektūra | 10-byte header (magic 0x1F 0x8B, method 8, flags, mtime, OS) followed by DEFLATE stream and 8-byte footer |
| Glaudinimas | DEFLATE algorithm (LZ77 sliding window + Huffman coding) |
| Baitų seka (Endianness) | Little-Endian header and footer integers |
| Spalvų erdvės | N/A (Archive Container) |
| Kanalai ir struktūra | Single-file compressed byte stream |
| Maksimalūs matmenys | Uncompressed size recorded modulo 2^32 (supports unbounded stream lengths) |
| Skaidrumas | 100% bit-exact lossless data preservation |
| Srautas ir progresyvusis įkėlimas | Sequential single-pass streaming playback over pipes and HTTP networks |
Techninė palyginimo matrica: GZ vs konkurentai
| Techninis atributas | GZ (Dabartinis) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Išskleidimo greitis | Greitas (~300 MB/s) | Lėtas (~40 MB/s) | Labai greitas (~400 MB/s) | Ypač greitas (>1,5 GB/s) |
| Visuotinis žiniatinklio palaikymas | 100 % visų naršyklių ir serverių | Nėra žiniatinklio naršyklių palaikymo | Palaikoma per HTTPS visose naršyklėse | Augantis naršyklių ir serverių palaikymas |
| Kelių failų pakavimas | Reikalingas TAR konteineris (.tar.gz) | Reikalingas TAR konteineris (.tar.bz2) | Neapdorotas srautas arba pasirinktinis konteineris | Reikalingas TAR konteineris (.tar.zst) |
| Kontrolinės sumos patvirtinimas | 32 bitų CRC (CRC-32) | 32 bitų CRC kiekvienam blokui | Nėra įmontuoto į srautą | 64 bitų xxHash |
Dažni sugadinimo režimai ir šešioliktainio atkūrimo vadovas
Išskleidimo klaida: „gzip: stdin: unexpected end of file".
Pirminė priežastis: Prielaika failo perkėlimo pabaiga, nutraukianti DEFLATE srautą arba 8 baitų CRC32 poraštę.
Atkūrimas: Išskleiskite dalinį turinį naudodami „gzip -d --keep broken.gz" arba „File2File Gzip Extractor".
Saugumo analizė ir analizatoriaus atakos vektoriai
Gzip analizatoriai apdoroja vartotojo kontroliuojamas antraštes ir DEFLATE bitų srautus, kurie turi būti apsaugoti nuo išskleidimo bombų.
Žinomi atakos vektoriai
- Išskleidimo bomba (ZIP bomba), išskleidžianti megabaitus Gzip duomenų į šimtus gigabaitų disko vietos.
- Buferio perpildymas skaitant pasirinktinį originalaus failo vardo eilutę iš antraštės.
- Sveikųjų skaičių perpildymas atliekant 32 bitų CRC patikros palyginimą.
Geriausia apsaugos praktika:
Istorinė kilmė ir svarbiausi etapai
Pagrindiniai privalumai
- Visuotinis interneto HTTP glaudinimo etalonas („Content-Encoding: gzip"), kurį palaiko 100 % žiniatinklio klientų.
- Išsaugo originalaus failo pakeitimo laiko žymas ir pasirinktinius originalius failų vardus 10 baitų antraštėje.
- Lengva procesoriaus apkrova išskleidimo metu, sklandžiai veikianti mažos galios mobiliuosiuose įrenginiuose ir maršrutizatoriuose.
Techniniai apribojimai ir trūkumai
- Tik vieno failo glaudinimas: negali suspausti kelių failų arba katalogų, iš pradžių nesupakavus jų į TAR konteinerį.
- Glaudinimo koeficientas yra mažesnis nei šiuolaikinių algoritmų, tokių kaip „Brotli" ir „Zstandard", šiuolaikiniame žiniatinklio tekste.
- Apatinėje paraštėje esantis nesuspausto dydžio laukas yra 32 bitų modulo 2^32, todėl failams, didesniems nei 4 GB, atsiranda rodymo klaidos.
Įdomūs techniniai faktai
- Magiškieji baitai 0x1F 0x8B buvo pasirinkti todėl, kad 0x1F istoriškai buvo pirmasis „Unix" „compress" failų baitas, o 0x8B identifikuodavo Gzip.
- Daugiau nei 80 % visų interneto svetainių naudoja Gzip glaudinimą, kad pristatytų tinklalapius naršyklėms.
- Jean-loup Gailly parašė glaudinimo kodą, o Markas Adleris - išskleidimo kodą; abu gavo ACM programinės įrangos sistemos apdovanojimą.
Dažniausiai užduodami techniniai klausimai
Kodėl negaliu suspausti aplanko su Gzip?
„Gzip“ buvo sukurtas vienam baitų srautui suspausti. Norėdami suspausti aplanką, „Unix“ sistemos pirmiausia sujungia aplanką į vieną .tar failą, o tada suglaudina jį su „Gzip“, kad gautų .tar.gz failą.
Kuo skiriasi .gz ir .zip?
.zip yra archyvo formatas, sujungiantis kelis failus su katalogo rodykle. .gz suspaudžia tik vieną failą ir „Unix“ sistemose dažniausiai naudojamas kartu su tar.
Kaip galiu išskleisti .gz failą „Windows“ arba „Mac“ operacinėse sistemose?
Naudokite File2File.app, kad akimirksniu išskleistumėte .gz failus tiesiai interneto naršyklėje be jokio programinės įrangos diegimo.
Susijusios GZ konvertavimo poros
TAR archyvo konvertavimas į GZIP archyvą apgaubia nesuspaustą failų rinkinį į vieną suspaustą srautą naudojant DEFLATE algoritmą be nuostolių, kad žymiai sumažėtų failo dydis.
GZIP suspausto failo konvertavimas į TAR archyvą pašalina glaudinimo sluoksnį, kad būtų atskleistas neapdorotas, nesuspaustas failų ir aplankų rinkinys.