Konvertor Deflate u GZIP
Konvertovanje sirovog DEFLATE toka u GZIP tok pakuje kompresovani sadržaj unutar standardnog kontejnera sa zaglavljima metapodataka kako bi operativni sistemi i veb alati mogli pravilno da ga pročitaju.
Poređenje formata i tehničke specifikacije
| Specifikacija | DEFLATE | GZIP |
|---|---|---|
| MIME tip | application/ | application/ |
| Tip | sirovi DEFLATE tok | kontejner DEFLATE toka |
| Kompresija | LZ77 + Huffman kodiranje | DEFLATE (RFC 1951) |
| Standardna specifikacija | IETF RFC 1950 / RFC 1951 | IETF RFC 1952 |
| Zaglavlje s magičnim bajtovima | 78 01 / 78 9C / 78 DA (zlib header bytes) | 1F 8B (gzip ID1/ID2) |
Pregled formata i primena
Sirovi DEFLATE tokovi podataka sadrže kompresovane bajtove bez ikakvih zaglavlja datoteka ili pratećih kontrolnih zbirova. Web pretraživači i mrežni alati često imaju problema sa obradom ovih golih tokova jer im nedostaju metapodaci poput originalnih naziva datoteka, vremenskih oznaka izmena ili identifikatora operativnog sistema. Pakovanje ovih sirovih podataka u GZIP kontejner rešava ove probleme kompatibilnosti. Programeri nailaze na sirove DEFLATE tokove unutar mrežnih protokola kao što su HTTP kompresija, delovi PNG slika i ZIP arhive. Kada ove datoteke treba da se sačuvaju kao samostalne datoteke za alate komandne linije ili standardna preuzimanja sa weba, inženjeri ih konvertuju u GZIP format. Ovo osigurava da uslužni programi za dekompresiju odmah prepoznaju tip datoteke i raspakuju sadržaj bez prikazivanja grešaka.
Tehničke specifikacije i analiza kodeka
Sirovi DEFLATE (RFC 1951 ili sirovi tok) koristi kombinaciju uparivanja kliznog rečnika LZ77 i Hafmanovog kodiranja za kompresiju nizova bajtova bez ikakvih zaglavlja za uokvirivanje. GZIP kontejner (application/gzip) uzima ovaj tačan DEFLATE sadržaj i obavija ga strogim zaglavljem od 10 bajtova koje sadrži dvobajtni potpis magičnog broja (0x1F, 0x8B), zastavice metoda kompresije, vreme izmene i ID operativnog sistema. GZIP struktura takođe dodaje prateći zapis od 8 bajtova koji sadrži CRC32 kontrolni zbir za verifikaciju integriteta podataka i veličinu nekompresovane datoteke modulo 2 na 32. stepen. MIME tip application/zlib označava zlib omotač oko DEFLATE-a prema RFC 1950, a ne sirovi DEFLATE tok.
Kompatibilnost sa operativnim sistemima i pregledačima
GZIP tokovi se mogu pohvaliti univerzalnom kompatibilnošću na modernim operativnim sistemima, uključujući Linux, macOS i Windows. Alati komandne linije poput gzip, gunzip i 7-Zip nativno čitaju GZIP datoteke. Web pretraživači automatski upravljaju dekompresijom GZIP-a prilikom primanja HTTP odgovora sa servera, mada sirovi DEFLATE često zahteva prilagođenu logiku parsera unutar JavaScript okruženja ili WebAssembly modula. Podrška zavisi i od aplikacije, uređaja, operativnog sistema i njegove verzije.
Praktičan savet
Uvek proverite da li vaš alat za dekompresiju ispravno čita GZIP prateći zapis (trailer), jer oštećeni CRC32 kontrolni zbirovi na kraju mogu uzrokovati prekid rada alata za ekstrakciju čak i ako je osnovni DEFLATE sadržaj neoštećen.
Često postavljana pitanja
Kako konvertovati sirovi DEFLATE u GZIP tok bez gubitka kvaliteta?
Oba formata koriste kompresiju bez gubitaka zasnovanu na potpuno istom DEFLATE algoritmu. Konvertovanje između njih jednostavno dodaje zaglavlja kontejnera i kontrolne zbirove oko postojećih kompresovanih bajtova, što znači da tokom procesa pakovanja nema nikakvog gubitka podataka.
Koja je razlika između sirovog DEFLATE i GZIP toka?
Sirovi DEFLATE sadrži samo kompresovani sadržaj bez ikakvih identifikacionih zaglavlja ili podnožja. GZIP tok je standardizovani kontejner datoteke koji dodaje zaglavlje od 10 bajtova i prateći kontrolni zbir od 8 bajtova sirovim DEFLATE podacima radi praćenja metapodataka i detekcije grešaka.