GZIP archyvas (.gz)

IETF Standartinis

Gzip (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ą:

Pasirinkite arba nuvilkite failus čia

100% privatus konvertavimas naršyklėje - failai niekada nepalieka jūsų įrenginio

arba įklijuokite Ctrl+V
Nulinio tinklo perdavimo privatumo garantija: 0 baitų įkelta į išorinius serverius. Visas apdorojimas vyko vietoje, jūsų naršyklės smėlio dėžėje (sandbox).

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 08

ASCII ATVAIZDAVIMAS: ..\x08

Standartizacija: IETF RFC 1952

Techninės specifikacijos

Konteinerio architektūra10-byte header (magic 0x1F 0x8B, method 8, flags, mtime, OS) followed by DEFLATE stream and 8-byte footer
GlaudinimasDEFLATE algorithm (LZ77 sliding window + Huffman coding)
Baitų seka (Endianness)Little-Endian header and footer integers
Spalvų erdvėsN/A (Archive Container)
Kanalai ir struktūraSingle-file compressed byte stream
Maksimalūs matmenysUncompressed size recorded modulo 2^32 (supports unbounded stream lengths)
Skaidrumas100% bit-exact lossless data preservation
Srautas ir progresyvusis įkėlimasSequential single-pass streaming playback over pipes and HTTP networks

Techninė palyginimo matrica: GZ vs konkurentai

Techninis atributasGZ (Dabartinis)BZ2BROTLIZSTD
Išskleidimo greitisGreitas (~300 MB/s)Lėtas (~40 MB/s)Labai greitas (~400 MB/s)Ypač greitas (>1,5 GB/s)
Visuotinis žiniatinklio palaikymas100 % visų naršyklių ir serveriųNėra žiniatinklio naršyklių palaikymoPalaikoma per HTTPS visose naršyklėseAugantis naršyklių ir serverių palaikymas
Kelių failų pakavimasReikalingas TAR konteineris (.tar.gz)Reikalingas TAR konteineris (.tar.bz2)Neapdorotas srautas arba pasirinktinis konteinerisReikalingas TAR konteineris (.tar.zst)
Kontrolinės sumos patvirtinimas32 bitų CRC (CRC-32)32 bitų CRC kiekvienam blokuiNė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

1996IETF formalizuoja Gzip failo formato specifikaciją kaip RFC 1952.
1993GNU projektas pritaikė jį, kad pakeistų patentuotą „Unix" „compress" programą (.Z failus).
1992Jean-loup Gailly ir Markas Adleris sukuria Gzip kaip patentų neturintį glaudinimo įrankį laisvosios programinės įrangos judėjimui.

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.