Konvertor GZIP prúdu na surový DEFLATE formát
Konverzia GZIP prúdu na surový DEFLATE odstraňuje vonkajší obal súboru a metadáta hlavičky, pričom ponecháva iba komprimovaný užitočný obsah pre špecializované sieťové protokoly a nízkoúrovňové archívy.
Porovnanie formátov a technické špecifikácie
| Špecifikácia | GZIP | DEFLATE |
|---|---|---|
| MIME typ | application/gzip | application/zlib |
| Typ | DEFLATE stream container | raw DEFLATE stream |
| Kompresia | DEFLATE (RFC 1951) | LZ77 + Huffman coding |
| Štandardná špecifikácia | IETF RFC 1952 | IETF RFC 1950 / RFC 1951 |
| Hlavička magických bajtov | 1F 8B (gzip ID1/ID2) | 78 01 / 78 9C / 78 DA (zlib header bytes) |
Prehľad formátu a použitie
Konverzia GZIP prúdu na surový DEFLATE sa bežne vyskytuje vo vývoji webových stránok, sieťovom programovaní a pracovných postupoch ukladania údajov na nízkej úrovni. Vývojári sa často stretávajú s formátom GZIP pri ukladaní jednotlivých súborov na disk, pretože tento formát obsahuje užitočné metadáta, ako sú pôvodné názvy súborov a časové pečiatky úprav. Moderné protokoly kompresie HTTP a špecifické binárne formáty však vyžadujú iba komprimovaný užitočný obsah bez akýchkoľvek obalových bajtov. Vykonanie tejto konverzie umožňuje inžinierom privádzať štandardné komprimované údaje priamo do sieťových prúdov alebo vlastných analyzátorov. Napríklad vytvorenie vlastného obslužného programu odpovedí HTTP alebo práca s archívmi ZIP často vyžaduje odstránenie hlavičky GZIP a päty CRC32 na izoláciu surového výstupu algoritmu. Odstránenie týchto dodatočných údajov kontajnera znižuje réžiu všade tam, kde na každom jednom bajte záleží v obmedzených programovacích prostrediach.
Technické špecifikácie a prehľad kodekov
GZIP prúd identifikovaný typom MIME application/gzip využíva štruktúru kontajnera definovanú v norme RFC 1952. Začína sa dvojbajtovou hlavičkou magického čísla (0x1F, 0x8B), po ktorej nasledujú príznaky kompresie, čas úpravy, identifikátor operačného systému a voliteľný názov súboru. Vlastné komprimované údaje sa nachádzajú uprostred a súbor končí štvorbajtovým kontrolným súčtom CRC32 a štvorbajtovým indikátorom nekomprimovanej veľkosti. Naproti tomu surový DEFLATE identifikovaný ako application/zlib alebo surové prúdy sa opiera o normu RFC 1951. Neobsahuje žiadne magické bajty, žiadne hlavičky ani päty. Na priame ukladanie komprimovaných blokov využíva algoritmus LZ77 v kombinácii s Huffmanovým kódovaním. Konverzia medzi nimi je úplne bezstratová, pretože oba formáty používajú presne ten istý kompresný engine DEFLATE. Proces konverzie jednoducho rozbalí GZIP obal, zahodí metadáta a extrahuje vnútorný prúd bajtov DEFLATE.
Kompatibilita s OS a prehliadačmi
Surové prúdy DEFLATE fungujú natívne v moderných operačných systémoch a webových runtime prostrediach prostredníctvom štandardných programovacích jazykov, ako sú Python, Node.js a C++. Prehliadače spracúvajú DEFLATE natívne prostredníctvom zásobníka hlavičiek kódovania obsahu HTTP. Operačné systémy ako Windows, macOS a Linux podporujú surové prúdy prostredníctvom systémových kompresných knižníc, akými sú zlib. Mobilné platformy vrátane systémov Android a iOS poskytujú priamy prístup cez API k rutinným funkciám DEFLATE pre vlastné vrstvy úložiska aplikácií.
💡 Užitočné informácie
Vždy overte, či váš cieľový analyzátor očakáva čistý prúd podľa normy RFC 1951 namiesto prúdu zabaleného v zlib, pretože zlib pridáva dvojbajtovú hlavičku, ktorú analyzátory surového DEFLATE formátu odmietnu.
Porovnanie formátov a technické špecifikácie
10-megabajtový textový súbor komprimovaný do GZIP prúdu sa zmenší na približne 2 megabajty. Odstránenie hlavičky a päty na vytvorenie súboru so surovým DEFLATE formátom poskytuje identickú veľkosť užitočného obsahu 2 megabajty. Prenos tohto 2-megabajtového súboru trvá približne 0,04 sekundy pri pripojení 500 Mbps Fiber, približne 0,4 sekundy v štandardnej sieti 5G a približne 4 sekundy na preťaženom mobilnom prepojení 4G.
Často kladené otázky
Ako previesť GZIP prúd na surový DEFLATE formát bez straty kvality?
Oba formáty používajú identické algoritmy bezstratovej kompresie. Ich konverzia jednoducho znamená prečítanie GZIP kontajnera, odstránenie desaťbajtovej hlavičky a osembajtovej päty a uloženie vnútorných komprimovaných blokov. Žiadne údaje sa nestratia, pretože základný algoritmus zostáva nezmenený.
Aký je rozdiel medzi GZIP prúdom a surovým DEFLATE formátom?
GZIP je kompletný kontajner súboru, ktorý obsahuje hlavičku magického bajtu, pôvodné názvy súborov, časové pečiatky úprav a kontrolný súčet na konci. Surový DEFLATE predstavuje iba samotné komprimované údaje, ktoré neobsahujú žiadne hlavičky, päty ani metadáta súboru.