ไฟล์เก็บถาวร GZIP (.gz)
IETF มาตรฐานGzip (GZ) คือยูทิลิตี้การบีบอัดและรูปแบบไฟล์มาตรฐานของ GNU ซึ่งใช้งานอย่างแพร่หลายในระบบปฏิบัติการ Unix และเซิร์ฟเวอร์เว็บ HTTP สำหรับการบีบอัดไฟล์และทรัพยากรเว็บอย่างรวดเร็ว
แปลง TAR เป็น GZ
ตัวแปลงจาก TAR เป็น GZ ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบและดู Metadata
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ GZ โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ GZ โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
1F 8B 08การแสดงผลรูปแบบ ASCII: ..\x08
มาตรฐาน: IETF RFC 1952
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | 10-byte header (magic 0x1F 0x8B, method 8, flags, mtime, OS) followed by DEFLATE stream and 8-byte footer |
| การบีบอัด | DEFLATE algorithm (LZ77 sliding window + Huffman coding) |
| การจัดลำดับไบต์ (Byte Endianness) | Little-Endian header and footer integers |
| พื้นที่สี | N/A (Archive Container) |
| ช่องสัญญาณและโครงสร้าง | Single-file compressed byte stream |
| ขนาดสูงสุด | Uncompressed size recorded modulo 2^32 (supports unbounded stream lengths) |
| ความโปร่งใส | 100% bit-exact lossless data preservation |
| การสตรีมและแบบโปรเกรสซีฟ | Sequential single-pass streaming playback over pipes and HTTP networks |
ตารางเปรียบเทียบทางเทคนิค: GZ กับคู่แข่ง
| คุณลักษณะทางเทคนิค | GZ (ปัจจุบัน) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| ความเร็วในการคลายการบีบอัด | เร็ว (~300 MB/s) | ช้า (~40 MB/s) | เร็วมาก (~400 MB/s) | เร็วสุดขีด (>1.5 GB/s) |
| การยอมรับบนเว็บสากล | เบราว์เซอร์และเซิร์ฟเวอร์ทั้งหมด 100% | ไม่รองรับบนเว็บเบราว์เซอร์ | รองรับผ่าน HTTPS ในเบราว์เซอร์ทั้งหมด | การรองรับเบราว์เซอร์และเซิร์ฟเวอร์ที่กำลังเติบโต |
| การแพ็กเกจหลายไฟล์ | ต้องใช้คอนเทนเนอร์ TAR (.tar.gz) | ต้องใช้คอนเทนเนอร์ TAR (.tar.bz2) | สตรีมดิบหรือคอนเทนเนอร์กำหนดเอง | ต้องใช้คอนเทนเนอร์ TAR (.tar.zst) |
| การตรวจสอบค่าความถูกต้อง | CRC 32 บิต (CRC-32) | CRC 32 บิตต่อบล็อก | ไม่มีในสตรีม | xxHash 64 บิต |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
ข้อผิดพลาดในการแตกไฟล์: 'gzip: stdin: unexpected end of file'
สาเหตุหลัก: การสิ้นสุดการถ่ายโอนไฟล์ก่อนกำหนดทำให้ตัดสตรีม DEFLATE หรือส่วนท้าย CRC32 ขนาด 8 ไบต์
การกู้คืน: ดึงข้อมูลบางส่วนโดยใช้ 'gzip -d --keep broken.gz' หรือ File2File Gzip Extractor
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
ตัววิเคราะห์ Gzip ประมวลผลส่วนหัวที่ผู้ใช้ควบคุมและบิตสตรีม DEFLATE ซึ่งต้องได้รับการปกป้องจากระเบิดการคลายการบีบอัด
เวกเตอร์การโจมตีที่ทราบ
- ระเบิดการคลายการบีบอัด (zip bomb) ที่ขยายข้อมูล Gzip ขนาดเมกะไบต์ให้กลายเป็นพื้นที่ดิสก์หลายร้อยจิกะไบต์
- บัฟเฟอร์ล้นเมื่ออ่านสตริงชื่อไฟล์ต้นฉบับที่เป็นตัวเลือกจากส่วนหัว
- จำนวนเต็มล้นระหว่างการเปรียบเทียบการตรวจสอบ CRC 32 บิต
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- เกณฑ์มาตรฐานสากลสำหรับการบีบอัดเว็บ HTTP ('Content-Encoding: gzip') ที่รองรับโดยไคลเอนต์เว็บ 100%
- รักษาประทับเวลาการแก้ไขไฟล์ต้นฉบับและชื่อไฟล์ต้นฉบับเสริมภายในส่วนหัว 10 ไบต์
- การใช้หน่วยประมวลผล (CPU) น้อยระหว่างการคลายการบีบอัดทำงานได้อย่างราบรื่นบนอุปกรณ์มือถือและเราเตอร์ที่ใช้พลังงานต่ำ
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- การบีบอัดไฟล์เดี่ยวเท่านั้น: ไม่สามารถบีบอัดไฟล์หรือไดเรกทอรีหลายไฟล์ได้โดยไม่ต้องรวมเข้ากับคอนเทนเนอร์ TAR ก่อน
- อัตราส่วนการบีบอัดต่ำกว่าอัลกอริทึมสมัยใหม่ เช่น Brotli และ Zstandard บนข้อความเว็บสมัยใหม่
- ฟิลด์ขนาดที่ยังไม่ได้บีบอัดส่วนท้ายคือ 32 บิต modulo 2^32 ทำให้เกิดบั๊กการแสดงผลแบบวนซ้ำบนไฟล์ที่มีขนาดใหญ่กว่า 4 GB
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- ไบต์วิเศษ 0x1F 0x8B ถูกเลือกเพราะ 0x1F ในอ历史ศาสตร์คือไบต์แรกของไฟล์ 'compress' บน Unix ในขณะที่ 0x8B ระบุ Gzip
- เว็บไซต์มากกว่า 80% บนอินเทอร์เน็ตใช้การบีบอัด Gzip เพื่อส่งหน้าเว็บไปยังเบราว์เซอร์
- Jean-loup Gailly เขียนโค้ดการบีบอัดในขณะที่ Mark Adler เขียนโค้ดการคลายการบีบอัด (inflate); ทั้งคู่ได้รับรางวัล ACM Software System Award
คำถามทางเทคนิคที่พบบ่อย
ทำไมฉันจึงไม่สามารถบีบอัดโฟลเดอร์ด้วย Gzip ได้?
Gzip ถูกออกแบบมาเพื่อบีบอัดสตรีมไบต์เดี่ยวๆ การจะบีบอัดโฟลเดอร์ ระบบยูนิกซ์ (Unix) จะรวมโฟลเดอร์เป็นไฟล์ .tar เดียวเสียก่อน แล้วจึงบีบอัดด้วย Gzip เพื่อสร้างเป็นไฟล์ .tar.gz
ความแตกต่างระหว่าง .gz และ .zip คืออะไร?
.zip เป็นรูปแบบไฟล์จัดเก็บ (archive format) ที่รวบรวมไฟล์หลายไฟล์เข้าด้วยกันพร้อมดัชนีไดเรกทอรี ส่วน .gz จะบีบอัดไฟล์เดี่ยวๆ เท่านั้น และมักใช้คู่กับ tar บนระบบยูนิกซ์ (Unix)
ฉันจะคลายไฟล์ .gz บน Windows หรือ Mac ได้อย่างไร?
ใช้ File2File.app เพื่อคลายไฟล์ .gz ทันทีในเว็บเบราว์เซอร์ของคุณโดยไม่ต้องติดตั้งซอฟต์แวร์ใดๆ
คู่การแปลงไฟล์ GZ ที่เกี่ยวข้อง
การแปลงคลังข้อมูล TAR เป็น GZIP จะรวมคอลเลกชันไฟล์ที่ไม่ได้บีบอัดให้เป็นสตรีมบีบอัดเดียวโดยใช้อัลกอริทึม DEFLATE แบบไม่สูญเสียข้อมูล เพื่อลดขนาดไฟล์ลงอย่างมาก
การแปลงไฟล์บีบอัด GZIP เป็นคลังข้อมูล TAR จะเป็นการถอดชั้นการบีบอัดออกเพื่อให้เห็นชุดไฟล์และโฟลเดอร์ที่ยังไม่บีบอัดและเป็นข้อมูลดิบ