GZIP arhīvs (.gz)
IETF StandartsGzip (GZ) ir standarta GNU saspiešanas utilīta un failu formāts, kas universāli izvietots Unix operētājsistēmās un interneta HTTP serveros ātrai failu un tīmekļa resursu saspiešanai.
Konvertēt TAR uz GZ
Bezmaksas TAR uz GZ konvertētājs pārlūkprogrammā. Konvertējiet failus uzreiz savā ierīcē.
Pārbaudīt un metadati
Operētājsistēmas un failu analizatori identificē GZ failus, pārbaudot sākotnējo bināro baitu secību:
Baitu līmeņa galvenes paraksts (maģiskie baiti)
Operētājsistēmas un failu analizatori identificē GZ failus, pārbaudot sākotnējo bināro baitu secību:
HEKSADECIMĀLAIS PARAKSTS (NOBĪDE 0):
1F 8B 08ASCII ATTEIOLOJUMS: ..\x08
Standartizācija: IETF RFC 1952
Tehniskās specifikācijas
| Konteinera arhitektūra | 10-byte header (magic 0x1F 0x8B, method 8, flags, mtime, OS) followed by DEFLATE stream and 8-byte footer |
| Saspiešana | DEFLATE algorithm (LZ77 sliding window + Huffman coding) |
| Baitu secība | Little-Endian header and footer integers |
| Krāsu telpas | N/A (Archive Container) |
| Kanāli un struktūra | Single-file compressed byte stream |
| Maks. izmēri | Uncompressed size recorded modulo 2^32 (supports unbounded stream lengths) |
| Caurspīdīgums | 100% bit-exact lossless data preservation |
| Straumēšana un progresīvā ielāde | Sequential single-pass streaming playback over pipes and HTTP networks |
Tehniskā salīdzinājuma matrica: GZ pret konkurentiem
| Tehniskais atribūts | GZ (Pašreizējais) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Atkausēšanas ātrums | Ātrs (~300 MB/s) | Lēns (~40 MB/s) | Ļoti ātrs (~400 MB/s) | Īpaši ātrs (>1,5 GB/s) |
| Universāla tīmekļa adopcija | 100% no visām pārlūkprogrammām un serveriem | Nulles tīmekļa pārlūkprogrammas atbalsts | Atbalstīts, izmantojot HTTPS visās pārlūkprogrammās | Augošs pārlūkprogrammu un serveru atbalsts |
| Vairāku failu iepakošana | Nepieciešams TAR konteiners (.tar.gz) | Nepieciešams TAR konteiners (.tar.bz2) | Neapstrādāta straume vai pielāgots konteiners | Nepieciešams TAR konteiners (.tar.zst) |
| Kontroles summas verifikācija | 32 bitu CRC (CRC-32) | 32 bitu CRC katram blokam | Nav iebūvēts straumē | 64 bitu xxHash |
Biežākie bojājumu veidi un heksadecimālās atkopšanas ceļvedis
Izvilkšanas kļūda: 'gzip: stdin: unexpected end of file'.
Pamatcēlonis: Priekšlaicīga failu pārsūtīšanas pārtraukšana, kas nogriež DEFLATE straumi vai 8 baitu CRC32 kājiņu.
Atkopšana: Izvelciet daļēju saturu, izmantojot 'gzip -d --keep broken.gz' vai File2File Gzip Extractor.
Drošības analīze un parsētāja uzbrukuma vektori
Gzip parsētāji apstrādā lietotāja kontrolētas galvenes un DEFLATE bitu straumes, kuras ir jāaizsargā pret atkausēšanas bombām.
Zināmie uzbrukuma vektori
- Atkausēšanas bumba (zip bomb), kas paplašina megabaitus Gzip datu simtos gigabaitu diska vietas.
- Bufera pārpilde, nolasot izvēles oriģinālā faila nosaukuma virkni no galvenes.
- Veselu skaitļu pārpilde 32 bitu CRC pārbaudes salīdzinājuma laikā.
Aizsardzības labākā prakse:
Vēsturiskā izcelsme un pavērsieni
Galvenās priekšrocības un plusi
- Universāls interneta HTTP saspiešanas etalons ('Content-Encoding: gzip'), kuru atbalsta 100% tīmekļa klientu.
- Saglabā sākotnējā faila modificēšanas laika zīmogus un izvēles oriģinālos failu nosaukumus 10 baitu galvenē.
- Viegls procesora resurss atkausēšanas laikā, kas vienmērīgi darbojas mazjaudas mobilajās ierīcēs un maršrutētājos.
Tehniskie ierobežojumi un mīnusi
- Tikai viena faila saspiešana: nevar saspiest vairākus failus vai direktorijus, vispirms neapvienojot tos TAR konteinerā.
- Saspiešanas koeficients ir zemāks nekā mūsdienu algoritmiem, piemēram, Brotli un Zstandard, uz mūsdienu tīmekļa teksta.
- Kājiņas nesaspiestā izmēra lauks ir 32 bitu modulo 2^32, kas izraisa ciklisku attēlošanas kļūdu failiem, kas lielāki par 4 GB.
Interesanti tehniski fakti
- Maģiskie baiti 0x1F 0x8B tika izvēlēti tāpēc, ka 0x1F vēsturiski bija Unix 'compress' failu pirmais baits, savukārt 0x8B identificēja Gzip.
- Vairāk nekā 80% visu interneta vietņu izmanto Gzip saspiešanu, lai piegādātu tīmekļa lapas pārlūkprogrammām.
- Žans-lūps Gailijs uzrakstīja saspiešanas kodu, bet Marks Adlers uzrakstīja atkausēšanas (inflate) kodu; abi saņēma ACM Software System balvu.
Bieži uzdotie tehniskie jautājumi
Kāpēc es nevaru saspiest mapi ar Gzip?
Gzip tika izstrādāts, lai saspiestu vienu baitu plūsmu. Lai saspiestu mapi, Unix sistēmas vispirms apvieno mapi vienā .tar failā un pēc tam saspiež to ar Gzip, izveidojot .tar.gz failu.
Kāda ir atšķirība starp .gz un .zip?
.zip ir arhīva formāts, kas apvieno vairākus failus kopā ar direktoriju indeksu. .gz saspiež tikai vienu failu un Unix sistēmās parasti tiek lietots kopā ar tar.
Kā es varu atspiest .gz failu operētājsistēmā Windows vai Mac?
Izmantojiet File2File.app, lai uzreiz atspiestu .gz failus tieši savā tīmekļa pārlūkprogrammā bez programmatūras instalēšanas.
Saistītie GZ konvertēšanas pāri
TAR arhīva konvertēšana GZIP arhīvā ietver nesaspiestu failu kolekciju vienā saspiestā straumē, izmantojot bezzaudējumu DEFLATE algoritmu, lai ievērojami samazinātu faila izmēru.
GZIP saspiestā faila konvertēšana TAR arhīvā noņem saspiešanas slāni, lai atklātu neapstrādāto, nesaspiesto failu un mapju kolekciju.