Konvertor surového DEFLATE streamu na GZIP stream
Konverzia surového DEFLATE streamu na GZIP stream zabalí komprimované užitočné zaťaženie do štandardného kontajnera s hlavičkami metadát, aby ho operačné systémy a webové nástroje mohli správne prečítať.
Porovnanie formátov a technické špecifikácie
| Špecifikácia | DEFLATE | GZIP |
|---|---|---|
| MIME typ | application/zlib | application/gzip |
| Typ | raw DEFLATE stream | DEFLATE stream container |
| Kompresia | LZ77 + Huffman coding | DEFLATE (RFC 1951) |
| Štandardná špecifikácia | IETF RFC 1950 / RFC 1951 | IETF RFC 1952 |
| Hlavička magických bajtov | 78 01 / 78 9C / 78 DA (zlib header bytes) | 1F 8B (gzip ID1/ID2) |
Prehľad formátu a použitie
Surové dátové streamy DEFLATE obsahujú komprimované bajty bez akýchkoľvek hlavičiek súborov alebo koncových kontrolných súčtov. Webové prehliadače a sieťové nástroje často bojujú so spracovaním týchto holých streamov, pretože im chýbajú metadáta, ako sú pôvodné názvy súborov, časové pečiatky úprav alebo identifikátory operačného systému. Zabalenie týchto surových dát do kontajnera GZIP rieši tieto problémy s kompatibilitou. Vývojári sa stretnú so surovými streammi DEFLATE v sieťových protokoloch, ako je kompresia HTTP, časti obrázkov PNG a archívy ZIP. Keď je potrebné tieto streamy uložiť ako samostatné súbory pre nástroje príkazového riadka alebo štandardné sťahovanie z webu, inžinieri ich prekonvertujú do formátu GZIP. To zaisťuje, že dekompresné nástroje okamžite rozpoznajú typ súboru a extrahujú obsah bez vyvolania chýb.
Technické špecifikácie a prehľad kodekov
Surový DEFLATE (application/zlib alebo surový stream) používa kombináciu prispôsobenia posuvného slovníka LZ77 a Huffmanovho kódovania na kompresiu sekvencií bajtov bez akýchkoľvek hlavičiek rámcov. Kontajner GZIP (application/gzip) berie toto presné užitočné zaťaženie DEFLATE a obaľuje ho prísnou 10-bajtovou hlavičkou obsahujúcou dvojbajtový podpis magického čísla (0x1F, 0x8B), príznaky metódy kompresie, čas úpravy a ID operačného systému. Štruktúra GZIP tiež pripojí 8-bajtovú koncovú časť obsahujúcu kontrolný súčet CRC32 na overenie integrity dát a veľkosť nekomprimovaného súboru modulo 2 na 32. mocninu.
Kompatibilita s OS a prehliadačmi
GZIP streamy sa pýšia univerzálnou kompatibilitou naprieč modernými operačnými systémami vrátane Linuxu, macOS a Windows. Nástroje príkazového riadka ako gzip, gunzip a 7-Zip natívne čítajú súbory GZIP. Webové prehliadače automaticky spracovávajú dekompresiu GZIP pri prijímaní odpovedí HTTP zo serverov, hoci surový DEFLATE často vyžaduje vlastnú logiku parseru v prostrediach JavaScript alebo moduloch WebAssembly.
💡 Užitočné informácie
Vždy overte, či váš dekompresný nástroj správne číta koncovú časť GZIP, pretože poškodené koncové kontrolné súčty CRC32 spôsobia prerušenie extrakčných nástrojov, aj keď je základné užitočné zaťaženie DEFLATE neporušené.
Porovnanie formátov a technické špecifikácie
10 MB surový DEFLATE stream konvertovaný na súbor GZIP pridáva nepatrnú 18-bajtovú réžiu pre hlavičky a koncové časti. Prenos tohto súboru trvá približne 0,04 sekundy pri 5G pripojení, zhruba 0,2 sekundy v štandardnej 4G sieti a pod 0,01 sekundy pri gigabitovom optickom pripojení.
Často kladené otázky
Ako konvertovať surový DEFLATE stream na GZIP stream bez straty kvality?
Oba formáty používajú bezstratovú kompresiu založenú na úplne rovnakom algoritmom DEFLATE. Konverzia medzi nimi jednoducho pridáva hlavičky kontajnera a kontrolné súčty okolo existujúcich komprimovaných bajtov, čo znamená, že počas procesu balenia nedochádza k žiadnej strate dát.
Aký je rozdiel medzi surovým DEFLATE a GZIP streamom?
Surový DEFLATE obsahuje iba komprimované užitočné zaťaženie bez akýchkoľvek identifikačných hlavičiek alebo pätičiek. GZIP stream je štandardizovaný kontajner súborov, ktorý k surovým dátam DEFLATE pridáva 10-bajtovú hlavičku a 8-bajtový koncový kontrolný súčet na sledovanie metadát a detekciu chýb.