آرشیو GZIP (.gz)
IETF استانداردفرمت Gzip (GZ) ابزار و فرمت فایل فشردهسازی استاندارد گنو (GNU) است که به طور جهانی در سیستمعاملهای یونیکس و سرورهای HTTP اینترنتی برای فشردهسازی سریع فایل و داراییهای وب مستقر شده است.
تبدیل TAR به GZ
مبدل رایگان TAR به GZ درون مرورگر. فایلها را فورا روی دستگاه خود تبدیل کنید.
بررسی و فراداده
سیستمعاملها و تحلیلگرهای فایل، فایلهای GZ را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای هدر در سطح بایت (Magic Bytes)
سیستمعاملها و تحلیلگرهای فایل، فایلهای GZ را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای HEX (آفست 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 |
|---|---|---|---|---|
| سرعت خارجسازی | سریع (~۳۰۰ مگابایت بر ثانیه) | کند (~۴۰ مگابایت بر ثانیه) | بسیار سریع (~۴۰۰ مگابایت بر ثانیه) | فوقالعاده سریع (>۱.۵ گیگابایت بر ثانیه) |
| پذیرش جهانی وب | ۱۰۰٪ تمام مرورگرها و سرورها | صفر پشتیبانی مرورگر وب | پشتیبانی شده از طریق HTTPS در همه مرورگرها | پشتیبانی رو به رشد مرورگر و سرور |
| بستهبندی چندفایلی | نیاز به کانتینر TAR (.tar.gz) | نیاز به کانتینر TAR (.tar.bz2) | جریان خام یا کانتینر سفارشی | نیاز به کانتینر TAR (.tar.zst) |
| تایید چکسام | CRC ۳۲ بیتی (CRC-32) | CRC ۳۲ بیتی به ازای هر بلوک | هیچکدام در جریان ساخته نشده است | xxHash ۶۴ بیتی |
حالتهای رایج خرابی و راهنمای بازیابی هگز
خطای استخراج: 'gzip: stdin: unexpected end of file'.
علت ریشهای: پایان زودهنگام انتقال فایل که جریان DEFLATE یا فوتر CRC32 هشت بایتی را قطع میکند.
بازیابی: استخراج محتوای جزئی با استفاده از 'gzip -d --keep broken.gz' یا استخراجکننده Gzip در File2File.
تحلیل امنیتی و بردارهای حمله تجزیهکننده (Parser)
تجزیهکنندههای Gzip هدرهای کنترلشده توسط کاربر و جریانهای بیت DEFLATE را پردازش میکنند که باید در برابر بمبهای فشردهسازی محافظت شوند.
بردارهای حمله شناختهشده
- بمب فشردهسازی (zip bomb) که مگابایتها داده Gzip را به صدها گیگابایت فضای دیسک گسترش میدهد.
- سرریز بافر هنگام خواندن رشته نام فایل اصلی اختیاری از هدر.
- سرریز عدد صحیح در طول مقایسه بررسی CRC ۳۲ بیتی.
بهترین روشهای پدافندی:
تاریخچه و نقاط عطف
مزایا و نقاط قوت کلیدی
- بنچمارک جهانی برای فشردهسازی HTTP اینترنتی ('Content-Encoding: gzip') که توسط ۱۰۰٪ کلاینتهای وب پشتیبانی میشود.
- مهر زمانی اصلاح فایل اصلی و نامهای فایل اصلی اختیاری را در هدر ۱۰ بایتی حفظ میکند.
- مصرف سبک پردازنده در طول خارجسازی، که به آرامی روی دستگاههای تلفن همراه و روترهای کممصرف اجرا میشود.
محدودیتها و معایب فنی
- فقط فشردهسازی تکفایلی: نمیتواند چندین فایل یا پوشه را بدون بستهبندی اولیه در یک کانتینر TAR فشرده کند.
- نسبت فشردهسازی کمتر از الگوریتمهای مدرن مانند Brotli و Zstandard روی متون وب مدرن است.
- فیلد اندازه فشردهنشده فوتر ۳۲ بیتی مدولو 2^32 است که باعث بروز اشکالات نمایشی rollover در فایلهای بزرگتر از ۴ گیگابایت میشود.
نکات فنی جالب
- بایتهای جادویی 0x1F 0x8B به این دلیل انتخاب شدند که 0x1F از نظر تاریخی اولین بایت فایلهای 'compress' یونیکس بود، در حالی که 0x8B گزیپ را شناسایی میکرد.
- بیش از ۸۰٪ از کل وبسایتهای اینترنت از فشردهسازی Gzip برای تحویل صفحات وب به مرورگرها استفاده میکنند.
- ژان-لوپ گالی کد فشردهسازی را نوشت در حالی که مارک آدلر کد خارجسازی (inflate) را نوشت؛ هر دو جایزه نرمافزار سیستم ACM را دریافت کردند.
سوالات فنی متداول
چرا نمیتوانم یک پوشه را با Gzip فشرده کنم؟
فرمت Gzip برای فشردهسازی یک جریان واحد از بایتها طراحی شده است. برای فشردهسازی یک پوشه، سیستمعاملهای یونیکس ابتدا پوشه را در یک فایل .tar واحد بستهبندی میکنند و سپس آن را با Gzip فشرده میکنند تا یک فایل .tar.gz ایجاد شود.
تفاوت بین .gz و .zip چیست؟
فرمت .zip یک فرمت آرشیو است که چندین فایل را به همراه یک فهرست دایرکتوری بستهبندی میکند. فرمت .gz فقط یک فایل واحد را فشرده میکند و معمولاً در سیستمعاملهای یونیکس با tar جفت میشود.
چگونه میتوانم یک فایل .gz را در ویندوز یا مک از حالت فشرده خارج کنم؟
برای استخراج آنی فایلهای .gz مستقیماً در مرورگر وب خود و بدون نیاز به نصب نرمافزار، از File2File.app استفاده کنید.
جفتهای تبدیل مرتبط با GZ
تبدیل آرشیو TAR به آرشیو GZIP، مجموعه فایلهای فشردهنشده را با استفاده از الگوریتم بدون اتلاف DEFLATE به یک جریان فشرده منفرد تبدیل میکند تا اندازه فایل به شدت کاهش یابد.
تبدیل یک فایل فشرده شده GZIP به آرشیو TAR لایه فشردهسازی را حذف میکند تا مجموعه فایلها و پوشههای خام و فشردهنشده را آشکار کند.