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.