Konvertor surového proudu DEFLATE na GZIP
Konverze surového proudu DEFLATE na proud GZIP zabalí komprimovaná data do standardního kontejneru s hlavičkami metadat, aby je operační systémy a webové nástroje mohly správně přečíst.
Porovnání formátů a technické specifikace
| Specifikace | DEFLATE | GZIP |
|---|---|---|
| MIME typ | application/zlib | application/gzip |
| Typ | raw DEFLATE stream | DEFLATE stream container |
| Komprese | LZ77 + Huffman coding | DEFLATE (RFC 1951) |
| Standardní specifikace | IETF RFC 1950 / RFC 1951 | IETF RFC 1952 |
| Hlavička souboru (Magic bytes) | 78 01 / 78 9C / 78 DA (zlib header bytes) | 1F 8B (gzip ID1/ID2) |
Přehled formátu a použití
Surové datové proudy DEFLATE obsahují komprimované bajty bez jakýchkoli hlaviček souborů nebo koncových kontrolních součtů. Webové prohlížeče a síťové nástroje mají často potíže se zpracováním těchto holých proudů, protože postrádají metadata, jako jsou původní názvy souborů, časová razítka úprav nebo identifikátory operačního systému. Zabalení těchto surových dat do kontejneru GZIP tyto problémy s kompatibilitou řeší. Vývojáři se se surovými proudy DEFLATE setkávají v síťových protokolech, jako je komprese HTTP, části obrázků PNG a archivy ZIP. Když je potřeba tyto proudy uložit jako samostatné soubory pro nástroje příkazové řádky nebo standardní webová stahování, inženýři je převedou do formátu GZIP. To zajišťuje, že dekompresní nástroje okamžitě rozpoznají typ souboru a rozbalí obsah bez vyvolání chyb.
Technické specifikace a přehled kodeků
Surový proud DEFLATE (application/zlib nebo surový proud) využívá kombinaci porovnávání v klouzavém slovníku LZ77 a Huffmanova kódování ke kompresi posloupností bajtů bez jakýchkoli rámovacích hlaviček. Kontejner GZIP (application/gzip) vezme tento přesný payload DEFLATE a obalí jej přísnou 10bajtovou hlavičkou obsahující dvoubytový podpis magického čísla (0x1F, 0x8B), příznaky kompresní metody, čas úpravy a ID operačního systému. Struktura GZIP rovněž připojuje 8bajtový přívěsek obsahující kontrolní součet CRC32 pro ověření integrity dat a velikost nekomprimovaného souboru modulo 2 na 32. mocninu.
Kompatibilita s operačními systémy a prohlížeči
Proudy GZIP se mohou pochlubit univerzální kompatibilitou napříč moderními operačními systémy, včetně Linuxu, macOS a Windows. Nástroje příkazové řádky jako gzip, gunzip a 7-Zip čtou soubory GZIP nativně. Webové prohlížeče automaticky zpracovávají dekompresi GZIP při příjmu odpovědí HTTP ze serverů, ačkoli surový DEFLATE často vyžaduje vlastní logiku parseru v prostředí JavaScriptu nebo modulech WebAssembly.
💡 Užitečné informace
Vždy ověřte, zda váš dekompresní nástroj správně čte koncovou část souboru GZIP, protože poškozené koncové kontrolní součty CRC32 způsobí, že nástroje pro rozbalení operaci přeruší, i když je podkladový payload DEFLATE neporušený.
Porovnání formátů a technické specifikace
Surový proud DEFLATE o velikosti 10 MB převedený na soubor GZIP přidává nepatrnou režii 18 bajtů pro hlavičky a koncové části. Přenos tohoto souboru trvá přibližně 0,04 sekundy při 5G připojení, zhruba 0,2 sekundy v běžné 4G síti a méně než 0,01 sekundy v gigabitové optické síti.
Často kladené otázky
Jak převést surový proud DEFLATE na proud GZIP bez ztráty kvality?
Oba formáty využívají bezztrátovou kompresi založenou na naprosto stejném algoritmu DEFLATE. Konverze mezi nimi jednoduše přidává hlavičky kontejneru a kontrolní součty kolem existujících komprimovaných bajtů, což znamená, že během procesu balení nedochází k žádné ztrátě dat.
Jaký je rozdíl mezi surovým proudem DEFLATE a proudem GZIP?
Surový proud DEFLATE obsahuje pouze komprimovaná data bez jakýchkoli identifikačních hlaviček nebo patiček. Proud GZIP je standardizovaný kontejner souborů, který k surovým datům DEFLATE přidává 10bajtovou hlavičku a 8bajtový koncový kontrolní součet pro sledování metadat a detekci chyb.