Mene ne buɗe matsen GZIP?
GZIP tsarin fayil na matse bayanai ne ba tare da asarar bayanai ba wanda RFC 1952 ya bayyana. Buɗe matse yana juyar da algorithm na DEFLATE (RFC 1951) — karanta baya references na LZ77 da alamomin da aka code ta Huffman don sake gina bytes na asali daidai.
Yadda buɗe matsen GZIP ke aiki?
Ana sarrafa shigarwarku gaba ɗaya a cikin mai binciken ka ta amfani da API na DecompressionStream('gzip') na asali. Matakai mafi girma sune:
- Kayan aikin yana bincike shigarwarku a matsayin Base64 ko hex (don rubutu) ko karanta bytes na raw na fayil ɗin .gz da kuka loda.
- An tabbatar da taken gzip na bytes 10, an gano abin da aka samar ta DEFLATE, kuma an ajiye kafa na bytes 8 (CRC32 + original-length-mod-2^32) gefe don tabbatarwa.
- Ana ciyar da bytes ta cikin
DecompressionStreamda aka saita don tsaringzip. - Mai binciken yana juyar da DEFLATE: an bincike codes na Huffman zuwa alamomi kuma an faɗaɗa back-references na LZ77 zuwa jerin bytes na asali.
- Jerin yana tabbatar da kafa na CRC32 da tsawo da ke ɗauke da bytes da aka dawo dasu, sannan yana fitar da su a matsayin rubutu na UTF-8 a cikin fom ɗin rubutu ko a matsayin fayil ɗin da za a iya sauke a cikin fom ɗin loda.
Me ya sa a buɗe matse da wannan kayan aiki?
- Duba amsa: karanta jikin HTTP da aka ɓoye ta GZIP da abubuwan CDN waɗanda sauran kayan aiki za su nuna a matsayin hayaniyar binary.
- Dawo da archives: ciro fayilolin log na .gz, kwafin saiti, da kayan tarball ba tare da girka software ƙari ba.
- Sirri: buɗe matse yana faruwa gaba ɗaya a cikin mai binciken ka. Shigarwa ba ta taɓa isa uwar garkenmu ba.
- Mai biye da ma'auni: yana karɓar kowane jerin RFC 1952 da aka samar ta CLI na
gzip, ta uwar garken HTTP, ko ta ɗakin laburare na yau da kullun na harshe a Python, Node.js, Go, Java, ko Rust.
Menene abubuwan da ake amfani da buɗe matsen GZIP a kullum?
Buɗe matsen GZIP yana bayyana a cikin aikin yanar gizo da kayan aiki:
- Debugging APIs: lallaba jikin amsa na
Content-Encoding: gzipmai tushe don ganin JSON ko HTML da ke ƙarƙashin. - Binciken log: buɗe fayilolin
.log.gzda aka juyar don grep don abubuwan ba tare da cikakken layin ciro ba. - Tabbatar da ajiyewa: tabbatar da cewa archive na .gz da kayan aiki ɗaya ya samar yana buɗe matse cikin tsabta kafin dogaro da shi.
Yaya misali na buɗe matsen GZIP ke kama?
String na Base64 na bytes 200 da ke farawa da H4sI alama ce ta canonical na taken gzip — bytes na sihiri 1f 8b suna ɓoyewa zuwa waɗancan haruffa. Lallaba wannan string kuma danna BUƊE MATSE yana sake samar da rubutun asali daidai, byte biye da byte, ciki har da sarari da layukan saita na ƙarshe.
Wannan GZIP decompressor yana karɓar kowane shigarwa na RFC 1952 kuma yana samar da bytes na asali kai tsaye a cikin mai binciken ka. Haɗa shi da GZIP Compressor don zagayar rubutu ko fayiloli ba tare da taɓa barin shafin ba.