Neapstrādātas DEFLATE uz GZIP straumes pārveidotājs
Neapstrādātas DEFLATE datu konvertēšana GZIP straumē ietin saspiesto datu kopu standarta konteinerā ar metadatu galvenēm, lai operētājsistēmas un tīmekļa rīki to varētu pareizi nolasīt.
Formātu salīdzinājums un tehniskās specifikācijas
| Specifikācija | DEFLATE | GZIP |
|---|---|---|
| MIME tips | application/zlib | application/gzip |
| Tips | raw DEFLATE stream | DEFLATE stream container |
| Kompresija | LZ77 + Huffman coding | DEFLATE (RFC 1951) |
| Standarta specifikācija | IETF RFC 1950 / RFC 1951 | IETF RFC 1952 |
| Maģisko baitu galvene | 78 01 / 78 9C / 78 DA (zlib header bytes) | 1F 8B (gzip ID1/ID2) |
Formāta pārskats un lietojums
Neapstrādātas DEFLATE datu straumes satur saspiestus baitus bez jebkādām failu galvenēm vai noslēdzošajām kontrolsummām. Tīkla pārlūkprogrammas un tīkla rīki bieži cīnās, lai apstrādātu šīs kailās straumes, jo tām trūkst metadatu, piemēram, oriģinālo failu nosaukumu, modificēšanas laika zīmogu vai operētājsistēmas identifikatoru. Šo neapstrādāto datu ietīšana GZIP konteinerā atrisina šīs saderības problēmas. Izstrādātāji saskaras ar neapstrādātām DEFLATE straumēm tādos tīkla protokolos kā HTTP kompresija, PNG attēlu bloki un ZIP arhīvi. Kad šīs straumes ir jāglabā kā atsevišķi faili komandrindas rīkiem vai standarta tīmekļa lejupielādēm, inženieri tās konvertē GZIP formātā. Tas nodrošina, ka dekompresijas utilītrīki uzreiz atpazīst faila tipu un izvelk saturu, neradot kļūdas.
Tehniskās specifikācijas un kodeku sadalījums
Neapstrādāta DEFLATE (application/zlib vai neapstrādāta straume) izmanto LZ77 slīdošās vārdnīcas sakritības un Hafmana kodēšanas kombināciju, lai saspiestu baitu secības bez jebkādām ierāmēšanas galvenēm. GZIP konteiners (application/gzip) ņem šo precīzo DEFLATE datu kopu un ietin to ar stingru 10 baitu galveni, kas satur divu baitu maģiskā numura signatūru (0x1F, 0x8B), kompresijas metodes karodziņus, modificēšanas laiku un operētājsistēmas ID. GZIP struktūra pievieno arī 8 baitu treileri, kas satur CRC32 kontrolsummu datu integritātes pārbaudei un nesaspiestā faila izmēru modulo 2 32. pakāpē.
OS un pārlūkprogrammu saderība
GZIP straumes lepojas ar universālu saderību visās modernajās operētājsistēmās, tostarp Linux, macOS un Windows. Komandrindas rīki, piemēram, gzip, gunzip un 7-Zip, vietējā līmenī nolasa GZIP failus. Tīmekļa pārlūkprogrammas automātiski apstrādā GZIP dekompresiju, saņemot HTTP atbildes no serveriem, lai gan neapstrādātai DEFLATE bieži ir nepieciešama pielāgota parsētāja loģika JavaScript vidēs vai WebAssembly moduļos.
💡 Noderīga informācija
Vienmēr pārbaudiet, vai jūsu dekompresijas rīks pareizi nolasa GZIP treileri, jo bojātas noslēdzošās CRC32 kontrolsummas liks ieguves rīkiem pārtraukt darbību pat tad, ja pamatā esošā DEFLATE datu kopa nav bojāta.
Formātu salīdzinājums un tehniskās specifikācijas
10 MB liela neapstrādāta DEFLATE straume, kas konvertēta uz GZIP failu, palielina nelielu 18 baitu papildu slogu galvenēm un treileriem. Šī faila pārsūtīšana aizņem aptuveni 0,04 sekundes 5G savienojumā, aptuveni 0,2 sekundes standarta 4G tīklā un mazāk nekā 0,01 sekundi gigabitu optiskajā savienojumā.
Biežāk uzdotie jautājumi
Kā konvertēt neapstrādātu DEFLATE uz GZIP straumi, nezaudējot kvalitāti?
Abi formāti izmanto bezzaudējumu kompresiju, kas balstīta uz tieši to pašu DEFLATE algoritmu. Konvertēšana starp tiem vienkārši pievieno konteinera galvenes un kontrolsummas ap esošajiem saspiestajiem baitiem, kas nozīmē, ka ietīšanas procesa laikā nenotiek nekāds datu zudums.
Kāda ir atšķirība starp neapstrādātu DEFLATE un GZIP straumi?
Neapstrādāta DEFLATE satur tikai saspiestos datus bez jebkādām identificējošām galvenēm vai kājenēm. GZIP straume ir standartizēts failu konteiners, kas neapstrādātajiem DEFLATE datiem pievieno 10 baitu galveni un 8 baitu noslēdzošo kontrolsummu metadatu izsekošanai un kļūdu noteikšanai.