เครื่องมือแปลงสตรีม GZIP เป็น Raw DEFLATE

การแปลงสตรีม GZIP เป็น Raw DEFLATE เป็นการถอดส่วนห่อหุ้มไฟล์ด้านนอกและข้อมูลเมตาส่วนหัวออก เหลือไว้เฉพาะเพย์โหลดที่บีบอัดแล้วสำหรับโปรโตคอลเครือข่ายเฉพาะทางและคลังเก็บข้อมูลระดับต่ำ

เลือกหรือลากไฟล์

เลือกหรือวางไฟล์ที่นี่

การแปลงไฟล์แบบส่วนตัว 100% ในเบราว์เซอร์ - ไฟล์จะไม่ rời ออกจากอุปกรณ์ของคุณ

หรือวาง Ctrl+V
การรับประกันความเป็นส่วนตัวแบบไม่มีการส่งผ่านเครือข่าย: อัปโหลด 0 ไบต์ไปยังเซิร์ฟเวอร์ภายนอก การประมวลผลทั้งหมดเกิดขึ้นภายในแซนด์บ็อกซ์ของเบราว์เซอร์ของคุณ

การเปรียบเทียบรูปแบบและข้อกำหนดทางเทคนิค

ข้อกำหนดGZIPDEFLATE
ประเภท MIMEapplication/gzipapplication/zlib
ประเภทDEFLATE stream containerraw DEFLATE stream
การบีบอัดDEFLATE (RFC 1951)LZ77 + Huffman coding
ข้อกำหนดมาตรฐานIETF RFC 1952IETF RFC 1950 / RFC 1951
ส่วนหัว Magic Bytes1F 8B (gzip ID1/ID2)78 01 / 78 9C / 78 DA (zlib header bytes)

ภาพรวมรูปแบบและการใช้งาน

การแปลงสตรีม GZIP เป็น Raw DEFLATE มักเกิดขึ้นในการพัฒนาเว็บ การเขียนโปรแกรมเครือข่าย และขั้นตอนการจัดเก็บข้อมูลระดับต่ำ นักพัฒนามักจะจัดการกับ GZIP เมื่อบันทึกไฟล์เดี่ยวลงในดิสก์เนื่องจากรูปแบบดังกล่าวมีข้อมูลเมตาที่มีประโยชน์ เช่น ชื่อไฟล์ต้นฉบับและเวลาที่แก้ไข อย่างไรก็ตาม โปรโตคอลการบีบอัด HTTP สมัยใหม่และรูปแบบไบนารีเฉพาะเจาะจงคาดหวังเฉพาะเพย์โหลดที่บีบอัดแล้วโดยไม่มีไบต์ห่อหุ้มใดๆ การดำเนินการแปลงนี้ช่วยให้วิศวกรสามารถป้อนข้อมูลบีบอัดมาตรฐานลงในสตรีมเครือข่ายหรือตัวแยกวิเคราะห์แบบกำหนดเองได้โดยตรง ตัวอย่างเช่น การสร้างตัวจัดการการตอบสนอง HTTP แบบกำหนดเองหรือการทำงานกับไฟล์เก็บถาวร ZIP มักจะต้องถอดส่วนหัว GZIP และส่วนท้าย CRC32 ออกเพื่อแยกเอาต์พุตอัลกอริธึมดิบ การลบข้อมูลคอนเทนเนอร์พิเศษนี้จะช่วยลดภาระโอเวอร์เฮดเมื่อทุกๆ ไบต์มีความสำคัญในสภาพแวดล้อมการเขียนโปรแกรมที่มีข้อจำกัด

ข้อมูลทางเทคนิคและรายละเอียดตัวแปลงสัญญาณ (Codec)

สตรีม GZIP ที่ระบุโดยประเภท MIME application/gzip ใช้โครงสร้างคอนเทนเนอร์ที่กำหนดไว้ใน RFC 1952 โดยเริ่มต้นด้วยส่วนหัวตัวเลขวิเศษสองไบต์ (0x1F, 0x8B) ตามด้วยแฟล็กการบีบอัด เวลาแก้ไข รหัสระบบปฏิบัติการ และชื่อไฟล์เสริม ข้อมูลที่บีบอัดจริงจะอยู่ตรงกลาง และไฟล์จะลงท้ายด้วยผลรวมตรวจสอบ CRC32 สี่ไบต์และตัวบ่งชี้ขนาดที่ไม่ได้บีบอัดสี่ไบต์ ในทางตรงกันข้าม Raw DEFLATE ที่ระบุโดย application/zlib หรือสตรีมดิบอาศัย RFC 1951 ซึ่งไม่มีไบต์วิเศษ ไม่มีส่วนหัว และไม่มีส่วนท้าย โดยใช้อัลกอริธึม LZ77 รวมกับการเข้ารหัสแบบฮัฟแมนเพื่อจัดเก็บ บล็อกที่บีบอัดโดยตรง การแปลงระหว่างทั้งสองรูปแบบไม่มีการสูญเสียข้อมูล เนื่องจากทั้งสองรูปแบบใช้เอนจิ้นการบีบอัด DEFLATE ตัวเดียวกันทุกประการ กระบวนการแปลงทำได้เพียงแกะตัวห่อ GZIP ทิ้งข้อมูลเมตา และดึงสตรีมไบต์ DEFLATE ด้านในออกมา

ความเข้ากันได้ของระบบปฏิบัติการและเบราว์เซอร์

สตรีม Raw DEFLATE สามารถทำงานได้โดยตรงในระบบปฏิบัติการสมัยใหม่และรันไทม์ของเว็บผ่านภาษาโปรแกรมมาตรฐาน เช่น Python, Node.js และ C++ เบราว์เซอร์จัดการกับ DEFLATE ได้โดยตรงผ่านสแต็กส่วนหัว content-encoding ของ HTTP ระบบปฏิบัติการอย่าง Windows, macOS และ Linux รองรับสตรีมดิบผ่านไลบรารีการบีบอัดของระบบ เช่น zlib แพลตฟอร์มมือถือรวมถึง Android และ iOS มีการเข้าถึง API โดยตรงไปยังรูทีน DEFLATE สำหรับชั้นการจัดเก็บข้อมูลแอปแบบกำหนดเอง

💡 ข้อมูลที่เป็นประโยชน์

ตรวจสอบให้แน่ใจเสมอว่าตัวแยกวิเคราะห์ปลายทางของคุณคาดหวังว่าจะเป็นสตรีม RFC 1951 ล้วนๆ แทนที่จะเป็นสตรีมที่ห่อด้วย zlib เนื่องจาก zlib จะเพิ่มส่วนหัวสองไบต์ที่ตัวแยกวิเคราะห์ Raw DEFLATE จะปฏิเสธ

การเปรียบเทียบรูปแบบและข้อกำหนดทางเทคนิค

ไฟล์ข้อความขนาด 10 เมกะไบต์ที่บีบอัดเป็นสตรีม GZIP จะลดขนาดลงเหลือประมาณ 2 เมกะไบต์ การถอดส่วนหัวและส่วนท้ายออกเพื่อสร้างไฟล์ Raw DEFLATE จะได้ขนาดเพย์โหลด 2 เมกะไบต์ที่เหมือนกัน การถ่ายโอนไฟล์ขนาด 2 เมกะไบต์นี้ใช้เวลาประมาณ 0.04 วินาทีบนการเชื่อมต่อ Fiber 500 Mbps, ประมาณ 0.4 วินาทีบนเครือข่าย 5G มาตรฐาน และประมาณ 4 วินาทีบนลิงก์เซลลูลาร์ 4G ที่มีความหนาแน่นสูง

คำถามที่พบบ่อย

จะแปลงสตรีม GZIP เป็น Raw DEFLATE โดยไม่สูญเสียคุณภาพได้อย่างไร

ทั้งสองรูปแบบใช้อัลกอริธึมการบีบอัดแบบไม่สูญเสียข้อมูลที่เหมือนกัน การแปลงรูปแบบเหล่านี้ทำได้ง่ายๆ เพียงอ่านคอนเทนเนอร์ GZIP ถอดส่วนหัวสิบไบต์และส่วนท้ายแปดไบต์ออก แล้วบันทึกบล็อกที่บีบอัดด้านใน ไม่มีข้อมูลสูญหายเนื่องจากอัลกอริธึมเบื้องต้นยังคงไม่เปลี่ยนแปลง

ความแตกต่างระหว่างสตรีม GZIP และ Raw DEFLATE คืออะไร

GZIP เป็นคอนเทนเนอร์ไฟล์ที่สมบูรณ์ซึ่งประกอบด้วยส่วนหัวไบต์วิเศษ ชื่อไฟล์ต้นฉบับ ประทับเวลาการแก้ไข และส่วนท้ายผลรวมตรวจสอบ Raw DEFLATE เป็นเพียงข้อมูลที่บีบอัดเท่านั้น โดยไม่มีส่วนหัว ส่วนท้าย หรือข้อมูลเมตาของไฟล์