GZIP srauto į grynąjį DEFLATE keitiklį

GZIP srauto konvertavimas į grynąjį DEFLATE pašalina išorinį failo apvalkalą ir antraštės metaduomenis, paliekant tik suspaustą naudingąją apkrovą specializuotiems tinklo protokolams ir žemo lygio archyvams.

Pasirinkite arba tempkite failus

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).

Formatų palyginimas ir techninės specifikacijos

SpecifikacijaGZIPDEFLATE
MIME tipasapplication/gzipapplication/zlib
TipasDEFLATE stream containerraw DEFLATE stream
GlaudinimasDEFLATE (RFC 1951)LZ77 + Huffman coding
Standartinė specifikacijaIETF RFC 1952IETF RFC 1950 / RFC 1951
Maginės baitų antraštės (Magic Bytes)1F 8B (gzip ID1/ID2)78 01 / 78 9C / 78 DA (zlib header bytes)

Formato apžvalga ir taikymas

GZIP srauto konvertavimas į grynąjį DEFLATE dažnai vyksta žiniatinklio kūrimo, tinklo programavimo ir žemo lygio duomenų saugojimo procesuose. Kūrėjai dažnai susiduria su GZIP saugodami atskirus failus diske, nes formatas apima naudingus metaduomenis, tokius kaip originalūs failų pavadinimai ir pakeitimo laiko žymos. Tačiau šiuolaikiniai HTTP suspaudimo protokolai ir specifiniai dvejetainiai formatai tikisi tik suspaustos naudojimui skirtos apkrovos be jokių papildomų baitų. Šis konvertavimas leidžia inžinieriams įtraukti standartinius suspaustus duomenis tiesiai į tinklo srautus ar pasirinktinius analizatorius. Pavyzdžiui, kuriant pasirinktinį HTTP atsakymų apdorojimo įrankį arba dirbant su ZIP archyvais, dažnai reikia pašalinti GZIP antraštę ir CRC32 poraštę, kad būtų išskirtas grynas algoritmų išvedimas. Papildomų konteinerio duomenų pašalinimas sumažina resursų sąnaudas, kai kiekvienas baitas yra svarbus ribotos programavimo aplinkos sąlygomis.

Techninės specifikacijos ir kodekų apžvalga

GZIP srautas, identifikuojamas pagal MIME tipą application/gzip, naudoja konteinerio strukturą, apibrėžtą RFC 1952. Jis prasideda dviejų baitų magiškojo skaičiaus antrašte (0x1F, 0x8B), po kurios seka suspaudimo vėliavėlės, pakeitimo laikas, operacinės sistemos ID ir pasirinktinis failo pavadinimas. Faktiniai suspausti duomenys yra viduryje, o failas baigiasi keturių baitų CRC32 kontrolinės sumos ir keturių baitų nesuspausto dydžio indikatoriumi. Tuo tarpu grynasis DEFLATE, identifikuojamas pagal application/zlib arba grynuosius srautus, remiasi RFC 1951. Jame nėra magiškų baitų, antraščių ar poraščių. Jis naudoja LZ77 algoritmą, sujungtą su „Huffman" kodavimu, kad tiesiogiai saugotų suspaustus blokus. Konvertavimas tarp jų yra visiškai be nuostolių, nes abiejuose formatuose naudojamas lygiai tas pats DEFLATE suspaudimo variklis. Konvertavimo procesas tiesiog išpakuoja GZIP apvalkalą, išmeta metaduomenis ir išskiria vidinį DEFLATE baitų srautą.

OS ir naršyklės suderinamumas

Grynieji DEFLATE srautai natūraliai veikia visose šiuolaikinėse operacinėse sistemose ir vykdymo aplinkose per standartines programuotojų kalbas, tokias kaip „Python", „Node.js" ir „C++". Naršyklės apdoroja DEFLATE natūraliai per HTTP turinio kodavimo antraščių dėklą. Operacinės sistemos, tokios kaip „Windows", „macOS" ir „Linux", palaiko grynuosius srautus per sistemines suspaudimo bibliotekas, tokias kaip „zlib". Mobiliosios platformos, įskaitant „Android" ir „iOS", suteikia tiesioginę API prieigą prie DEFLATE rutinų pasirinktiniams programėlių saugojimo sluoksniams.

💡 Naudinga informacija

Visada patikrinkite, ar jūsų tikslinis analizatorius tikisi gryno RFC 1951 srauto, o ne su „zlib" apvynioto srauto, nes „zlib" prideda dviejų baitų antraštę, kurią grynojo DEFLATE analizatoriai atmes.

Formatų palyginimas ir techninės specifikacijos

10 megabaitų tekstinis failas, suspaustas į GZIP srautą, sumažėja maždaug iki 2 megabaitų. Antraštės ir poraštės pašalinimas norint sukurti grynąjį DEFLATE failą suteikia identišką 2 megabaitų naudingąją apkrovą. Šio 2 megabaitų failo perkėlimas užtrunka apie 0,04 sekundės per 500 Mbps šviesolaidinį ryšį, maždaug 0,4 sekundės standartiniame 5G tinkle ir apie 4 sekundes perkrautame 4G koriniame ryšyje.

Dažnai užduodami klausimai

Kaip konvertuoti GZIP srautą į grynąjį DEFLATE neprarandant kokybės?

Abiejuose formatuose naudojami identiški, be nuostolių veikiantys suspaudimo algoritmai. Jų konvertavimas tiesiog reiškia GZIP konteinerio nuskaitymą, dešimties baitų antraštės ir aštuonių baitų poraštės pašalinimą bei vidinių suspaustų blokų išsaugojimą. Jokie duomenys neprarandami, nes pagrindinis algoritmas lieka nepakeistas.

Kuo skiriasi GZIP srautas ir grynasis DEFLATE?

GZIP yra pilnas failo konteineris, kuriame yra magiškojo baito antraštė, originalūs failų pavadinimai, pakeitimo laiko žymos ir kontrolinės sumos poraštė. Grynasis DEFLATE yra tik patys suspausti duomenys, neturintys jokių antraščių, poraštčių ar failo metaduomenų.