การคลายการบีบอัด GZIP คืออะไร?
GZIP คือรูปแบบไฟล์การบีบอัดแบบไม่สูญเสียข้อมูลที่กำหนดโดย RFC 1952 การคลายการบีบอัดจะย้อนกระบวนการของอัลกอริทึม DEFLATE (RFC 1951) — โดยอ่านการอ้างอิงย้อนของ LZ77 และสัญลักษณ์ที่เข้ารหัสด้วย Huffman เพื่อสร้างไบต์ดั้งเดิมขึ้นใหม่อย่างแม่นยำ
การคลายการบีบอัด GZIP ทำงานอย่างไร?
อินพุตของคุณถูกประมวลผลทั้งหมดในเบราว์เซอร์ด้วย API DecompressionStream('gzip') ขั้นตอนหลักมีดังนี้:
- เครื่องมือจะแยกวิเคราะห์อินพุตของคุณเป็น Base64 หรือฐานสิบหก (สำหรับข้อความ) หรืออ่านไบต์ดิบของไฟล์ .gz ที่คุณอัปโหลด
- ตรวจสอบส่วนหัว gzip ขนาด 10 ไบต์ ระบุเพย์โหลด DEFLATE และเก็บส่วนท้ายขนาด 8 ไบต์ (CRC32 + ความยาวเดิม mod 2^32) ไว้สำหรับการตรวจสอบ
- ไบต์จะถูกส่งผ่าน
DecompressionStreamที่ตั้งค่าไว้สำหรับรูปแบบgzip - เบราว์เซอร์ย้อนกระบวนการ DEFLATE: รหัส Huffman ถูกถอดรหัสกลับเป็นสัญลักษณ์ และการอ้างอิงย้อน LZ77 ถูกขยายกลับเป็นสตรีมไบต์ดั้งเดิม
- สตรีมตรวจสอบ CRC32 และส่วนท้ายความยาวเทียบกับไบต์ที่กู้คืน จากนั้นส่งออกเป็นข้อความ UTF-8 ในฟอร์มข้อความ หรือเป็นไฟล์ที่ดาวน์โหลดได้ในฟอร์มอัปโหลด
ทำไมจึงคลายการบีบอัดด้วยเครื่องมือนี้?
- ตรวจสอบการตอบกลับ: อ่านเนื้อหา HTTP ที่เข้ารหัส GZIP และเพย์โหลด CDN ที่เครื่องมืออื่นจะแสดงเป็นข้อมูลขยะแบบไบนารี
- กู้คืนไฟล์เก็บถาวร: แตกไฟล์บันทึก .gz ไฟล์ดัมป์การตั้งค่า และส่วนประกอบของ tarball โดยไม่ต้องติดตั้งซอฟต์แวร์เพิ่มเติม
- ความเป็นส่วนตัว: การคลายการบีบอัดเกิดขึ้นในเบราว์เซอร์ของคุณทั้งหมด อินพุตจะไม่ส่งถึงเซิร์ฟเวอร์ของเรา
- เป็นไปตามมาตรฐาน: รองรับสตรีม RFC 1952 ใด ๆ ที่สร้างโดย CLI
gzipเซิร์ฟเวอร์ HTTP หรือไลบรารีมาตรฐานของ Python, Node.js, Go, Java หรือ Rust
การใช้งานทั่วไปของการคลายการบีบอัด GZIP มีอะไรบ้าง?
การคลายการบีบอัด GZIP พบในงานเว็บและเครื่องมือบรรทัดคำสั่งอย่างกว้างขวาง:
- การดีบัก API: วางเนื้อหาตอบกลับ
Content-Encoding: gzipดิบเพื่อดู JSON หรือ HTML ที่อยู่ข้างใต้ - การวิเคราะห์บันทึก: เปิดไฟล์
.log.gzที่ถูกหมุนเวียนเพื่อ grep หาเหตุการณ์โดยไม่ต้องมีไปป์ไลน์การแตกไฟล์เต็มรูปแบบ - การตรวจสอบสำรองข้อมูล: ยืนยันว่าไฟล์ .gz ที่สร้างจากเครื่องมืออื่นสามารถคลายการบีบอัดได้อย่างสมบูรณ์ก่อนพึ่งพามัน
ตัวอย่างการคลายการบีบอัด GZIP มีลักษณะอย่างไร?
สตริง Base64 ขนาด 200 ไบต์ที่เริ่มต้นด้วย H4sI คือสัญลักษณ์ที่ชี้บอกถึงส่วนหัว gzip — ไบต์มหัศจรรย์ 1f 8b เข้ารหัสออกมาเป็นอักขระเหล่านั้น การวางสตริงนี้แล้วกด "คลายการบีบอัด" จะสร้างข้อความต้นฉบับขึ้นใหม่อย่างแม่นยำทีละไบต์ รวมถึงช่องว่างและการขึ้นบรรทัดใหม่ท้ายข้อความ
เครื่องมือคลายการบีบอัด GZIP นี้รองรับอินพุต RFC 1952 ใด ๆ และผลิตไบต์ดั้งเดิมโดยตรงในเบราว์เซอร์ของคุณ จับคู่กับเครื่องมือบีบอัด GZIP เพื่อทำงานไป-กลับกับข้อความหรือไฟล์โดยไม่ต้องออกจากหน้า