Pretvarač sirovog DEFLATE toka u GZIP tok
Pretvaranje sirovog DEFLATE toka u GZIP tok obavija komprimirane podatke unutar standardnog spremnika sa zaglavljima metapodataka kako bi ih operativni sustavi i web alati mogli ispravno pročitati.
Usporedba formata i tehničke specifikacije
| Specifikacija | DEFLATE | GZIP |
|---|---|---|
| MIME vrsta | application/zlib | application/gzip |
| Vrsta | raw DEFLATE stream | DEFLATE stream container |
| Kompresija | LZ77 + Huffman coding | DEFLATE (RFC 1951) |
| Standardna specifikacija | IETF RFC 1950 / RFC 1951 | IETF RFC 1952 |
| Zaglavlje čarobnih bajtova (Magic Bytes) | 78 01 / 78 9C / 78 DA (zlib header bytes) | 1F 8B (gzip ID1/ID2) |
Pregled formata i primjena
Sirovi DEFLATE tokovi podataka sadrže komprimirane bajtove bez ikakvih zaglavlja datoteka ili pratećih kontrolnih zbrojeva. Web preglednici i mrežni alati često se bore s obradom ovih golih tokova jer im nedostaju metapodataka poput izvornih nazivâ datoteka, vremenskih oznaka izmjene ili identifikatora operativnog sustava. Omotavanje ovih sirovih podataka u GZIP spremnik rješava ove probleme kompatibilnosti. Programeri nailaze na sirove DEFLATE tokove unutar mrežnih protokola poput HTTP kompresije, dijelova PNG slika i ZIP arhiva. Kada se ovi tokovi trebaju spremiti kao samostalne datoteke za alate komandne linije ili standardna preuzimanja s weba, inženjeri ih pretvaraju u GZIP format. To osigurava da uslužni programi za dekompresiju trenutno prepoznaju vrstu datoteke i izvuku sadržaj bez izbacivanja pogrešaka.
Tehničke specifikacije i pregled kodeka
Sirovi DEFLATE (application/zlib ili sirovi tok) koristi kombinaciju podudaranja kliznog rječnika LZ77 i Huffmanovog kodiranja za komprimiranje sekvenci bajtova bez ikakvih zaglavlja uokvirivanja. GZIP spremnik (application/gzip) uzima ovaj točan DEFLATE teret i obavija ga strogim zaglavljem od 10 bajtova koje sadrži dvoznamenkasti potpis magičnog broja (0x1F, 0x8B), zastavice metode kompresije, vrijeme izmjene i ID operativnog sustava. GZIP struktura također dodaje prikolicu od 8 bajtova koja sadrži CRC32 kontrolni zbroj za provjeru integriteta podataka i veličinu nekomprimirane datoteke modulo 2 na 32. potenciju.
Kompatibilnost s OS-om i preglednikom
GZIP tokovi se mogu pohvaliti univerzalnom kompatibilnošću na modernim operativnim sustavima, uključujući Linux, macOS i Windows. Alati komandne linije poput gzip, gunzip i 7-Zip izvorno čitaju GZIP datoteke. Web preglednici automatski upravljaju dekompresijom GZIP-a prilikom primanja HTTP odgovora s poslužitelja, iako sirovi DEFLATE često zahtijeva prilagođenu logiku parsera unutar JavaScript okruženja ili WebAssembly modula.
💡 Korisne informacije
Uvijek provjerite čita li vaš alat za dekompresiju GZIP prikolicu ispravno, jer će oštećeni prateći CRC32 kontrolni zbrojevi uzrokovati prekid alata za izvlačenje čak i ako je temeljni DEFLATE teret neoštećen.
Usporedba formata i tehničke specifikacije
Sirovi DEFLATE tok od 10 MB pretvoren u GZIP datoteku dodaje mali trošak od 18 bajtova za zaglavlja i prikolice. Prijenos ove datoteke traje oko 0,04 sekunde na 5G vezi, otprilike 0,2 sekunde na standardnoj 4G mreži i manje od 0,01 sekunde na gigabitnoj optičkoj vezi.
Često postavljana pitanja
Kako pretvoriti sirovi DEFLATE tok u GZIP tok bez gubitka kvalitete?
Oba formata koriste kompresiju bez gubitaka koja se temelji na potpuno istom DEFLATE algoritmu. Pretvaranje između njih jednostavno dodaje zaglavlja spremnika i kontrolne zbrojeve oko postojećih komprimiranih bajtova, što znači da se tijekom procesa omatanja ne događa gubitak podataka.
Koja je razlika između sirovog DEFLATE toka i GZIP toka?
Sirovi DEFLATE sadrži samo komprimirani teret bez ikakvih identifikacijskih zaglavlja ili podnožja. GZIP tok je standardizirani spremnik datoteka koji dodaje zaglavlje od 10 bajtova i prateći kontrolni zbroj od 8 bajtova sirovim DEFLATE podacima radi praćenja metapodataka i otkrivanja pogrešaka.