أرشيف GZIP (.gz)
IETF قياسيGzip (GZ) هي أداة الضغط القياسية لنظام جنو (GNU) وصيغة الملفات المرتبطة بها، ويتم نشرها عالمياً عبر أنظمة تشغيل يونكس وخوادم الويب HTTP لضغط الملفات وأصول الويب بسرعة.
تحويل TAR إلى GZ
محول مجاني داخل المتصفح للتحويل من TAR إلى GZ. قم بتحويل الملفات فوراً على جهازك.
فحص البيانات الوصفية
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات GZ من خلال فحص تسلسل البايت الثنائي البادئ:
توقيع رأس الملف على مستوى البايت (Magic Bytes)
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات GZ من خلال فحص تسلسل البايت الثنائي البادئ:
التوقيع الست عشري (الإزاحة 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) |
| ترتيب البايتات (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 ميجابايت/ثانية) | بطيئة (~40 ميجابايت/ثانية) | سريعة جداً (~400 ميجابايت/ثانية) | فائقة السرعة (>1.5 جيجابايت/ثانية) |
| اعتماد الويب الشامل | 100% من جميع المتصفحات والخوادم | صم دعم لمتصفحات الويب | مدعوم عبر HTTPS في جميع المتصفحات | دعم متزايد للمتصفحات والخوادم |
| تجميع ملفات متعددة | يتطلب حاوية TAR (.tar.gz) | يتطلب حاوية TAR (.tar.bz2) | تدفق خام أو حاوية مخصصة | يتطلب حاوية TAR (.tar.zst) |
| التحقق من المجموع الاختزاري | CRC 32-bit (CRC-32) | CRC 32-bit لكل كتلة | لا يوجد تدفق مدمج | xxHash 64-bit |
أنماط التلف الشائعة ودليل استرداد النظام السداسي
خطأ في الاستخراج: 'gzip: stdin: نهاية غير متوقعة للملف'.
السبب الجذري: إنهاء مبكر لنقل الملف يؤدي إلى قطع تدفق DEFLATE أو ذيل CRC32 المكون من 8 بايتات.
الاسترداد: استخرج المحتويات الجزئية باستخدام 'gzip -d --keep broken.gz' أو باستخدام أداة File2File Gzip Extractor.
تحليل الأمان وناقلات هجوم المحلل اللغوي
يقوم محللو Gzip بمعالجة الرؤوس التي يتحكم فيها المستخدم وتدفقات بتات DEFLATE التي يجب حمايتها ضد قنابل فك الضغط.
ناقلات الهجوم المعروفة
- قنبلة فك الضغط (zip bomb) التي توسع ميجابايتات من بيانات Gzip إلى مئات الجيجابايت من مساحة القرص.
- تجاوز سعة المخزن المؤقت عند قراءة سلسلة اسم الملف الأصلي الاختياري من الرأس.
- تجاوز سعة الأعداد الصحيحة أثناء مقارنة فحص CRC 32-bit.
أفضل الممارسات الدفاعية:
الأصول التاريخية والمحطات الرئيسية
المزايا الرئيسية والإيجابيات
- المعيار العالمي لضغط الويب عبر بروتوكول HTTP ('Content-Encoding: gzip') المدعوم من قبل 100% من عملاء الويب.
- تحافظ على الطوابع الزمنية لتعديل الملفات الأصلية وأسماء الملفات الأصلية الاختيارية داخل الرأس المكون من 10 بايتات.
- بصمة خفيفة للمعالج أثناء فك الضغط، تعمل بسلاسة على الأجهزة المحمولة وأجهزة التوجيه (routers) منخفضة الطاقة.
القيود الفنية والسلبيات
- ضغط ملف واحد فقط: لا يمكن ضغط عدة ملفات أو مجلدات دون تجميعها أولاً في حاوية TAR.
- نسبة الضغط أقل من الخوارزميات الحديثة مثل Brotli وZstandard على نصوص الويب الحديثة.
- حقل الحجم غير المضغوط في الذيل هو 32 بت مقياس 2^32، مما يسبب أخطاء عرض التمرير على الملفات التي تزيد عن 4 جيجابايت.
معلومات تقنية طريفة
- تم اختيار البايتات السحرية 0x1F 0x8B لأن 0x1F كان تاريخياً أول بايت لملفات 'compress' في يونكس، بينما حدد 0x8B صيغة Gzip.
- أكثر من 80% من جميع مواقع الويب على الإنترنت تستخدم ضغط Gzip لتسليم صفحات الويب للمتصفحات.
- كتب جان لوب غايلي كود الضغط بينما كتب مارك أدلر كود فك الضغط (inflate)؛ وحصل كلاهما على جائزة ACM لأنظمة البرمجيات.
الأسئلة التقنية المتكررة
لماذا لا يمكنني ضغط مجلد باستخدام Gzip؟
تم تصميم Gzip لضغط تدفق واحد من البايتات. لضغط مجلد، تقوم أنظمة يونكس أولاً بجمع المجلد في ملف .tar واحد، ثم ضغطه باستخدام Gzip لإنشاء ملف .tar.gz.
ما الفرق بين .gz و .zip؟
.zip هو تنسيق أرشيف يجمع عدة ملفات معاً باستخدام فهرس دليل. بينما يضغط .gz ملفاً واحداً فقط وغالباً ما يتم إقرانه بـ tar على أنظمة يونكس.
كيف يمكنني فك ضغط ملف .gz على نظام ويندوز أو ماك؟
استخدم File2File.app لفك ضغط ملفات .gz فوراً مباشرة في متصفح الويب الخاص بك دون أي تثبيت للبرامج.