Ukandamizaji wa GZIP ni nini?
GZIP ni muundo wa faili wa ukandamizaji usio na hasara uliofafanuliwa na RFC 1952. Huzingira malipo yaliyozalishwa na algorithm ya DEFLATE (RFC 1951), ambayo huchanganya marejeleo ya nyuma ya LZ77 na usimbuaji wa Huffman kupunguza data ya kujirudia kwenye mkondo mfupi wa baiti.
Ukandamizaji wa GZIP hufanyaje kazi?
Ingizo lako linachakatwa kabisa kwenye kivinjari chako ukitumia API asili ya CompressionStream('gzip'). Hatua kuu ni:
- Zana hubadilisha maandishi au faili yako kwenye mkondo wa baiti (UTF-8 kwa ingizo la maandishi).
- Baiti hizo hupitishwa kupitia
CompressionStreamiliyosanidiwa kwa muundo wagzip. - Kivinjari huomba DEFLATE: upita wa LZ77 wa dirisha la kuteleza hutafuta mlolongo unaorudiwa, na usimbuaji wa Huffman hugawa misimbo mifupi kwa alama za kawaida.
- Kichwa cha gzip cha baiti 10 na kijachini cha baiti 8 (CRC32 ya data asili pamoja na urefu asili modulo 2^32) huzingirwa kuzunguka malipo ya DEFLATE, ikizalisha chombo cha kawaida cha .gz.
- Matokeo yanatolewa kama Base64 au hex kwa ingizo la maandishi, au yanapendekezwa kama faili la .gz linaloweza kupakuliwa kwa ingizo la binary.
Kwa nini kukandamiza kwa GZIP?
- Malipo madogo: maandishi, JSON, HTML, CSS, na msimbo wa chanzo kwa kawaida hupungua hadi sehemu ya ukubwa wao asili.
- Kiwango cha tasnia: GZIP inaeleweka na karibu kila seva ya HTTP, CDN, kivinjari, zana ya hifadhi, na maktaba ya kawaida ya lugha ya programu.
- Faragha: ukandamizaji hufanyika kabisa kwenye kivinjari chako. Ingizo haifiki seva zetu kamwe.
- Tayari kwa safari ya pande zote: matokeo yanafunguliwa na CLI ya
gunzip, naContent-Encoding: gzipya HTTP, na msomaji wowote wa RFC 1952 katika Python, Node.js, Go, Java, au Rust.
Matumizi ya kawaida ya ukandamizaji wa GZIP ni yapi?
GZIP hutumika kwenye wavuti na kwenye zana za mstari wa amri:
- Uhamishaji wa HTTP: seva za wavuti hukandamiza majibu kwa GZIP ili kurasa zipakiwe kwa haraka zaidi kwenye mtandao.
- Uhifadhi wa kumbukumbu: kumbukumbu za seva za muda mrefu huhifadhiwa kama faili za .gz kupunguza matumizi ya diski.
- Nakala rudufu na vifurushi: tarballs (.tar.gz) hukandamiza miti yote ya saraka kwa usambazaji wa kubeba.
Mfano wa ukandamizaji wa GZIP unaonekanaje?
Hati ya JSON ya KB 1 yenye majina mengi ya sehemu yanayorudiwa kwa kawaida hukandamizwa hadi karibu na baiti 200–300 — upungufu wa ukubwa mara nne hadi tano. Kumbukumbu kubwa za maandishi mara nyingi hukandamizwa kwa asilimia 90 au zaidi. Maingizo yaliyokandamizwa tayari (JPEG, PNG, MP4, ZIP) hayatapungua zaidi na yanaweza kukua kwa baiti chache za framing ya GZIP.
Kikandamizaji hiki cha GZIP huzalisha matokeo ya kawaida ya RFC 1952 moja kwa moja kwenye kivinjari chako. Iwe unafanya malipo madogo kabla ya uhamishaji au kutengeneza faili la .gz kwa uhifadhi, matokeo yanashirikiana na kila zana inayofahamu GZIP kwenye mtandao.