آرشیو GZIP (.gz)

IETF استاندارد

فرمت Gzip (GZ) ابزار و فرمت فایل فشرده‌سازی استاندارد گنو (GNU) است که به طور جهانی در سیستم‌عامل‌های یونیکس و سرورهای HTTP اینترنتی برای فشرده‌سازی سریع فایل و دارایی‌های وب مستقر شده است.

تبدیل TAR به GZ

مبدل رایگان TAR به GZ درون مرورگر. فایل‌ها را فورا روی دستگاه خود تبدیل کنید.

بررسی و فراداده

سیستم‌عامل‌ها و تحلیلگرهای فایل، فایل‌های GZ را با بررسی توالی بایت‌های دودویی ابتدایی شناسایی می‌کنند:

انتخاب یا رها کردن فایل‌ها در اینجا

تبدیل ۱۰۰٪ خصوصی در مرورگر - فایل‌ها هرگز دستگاه شما را ترک نمی‌کنند

یا جای‌گذاری کنید Ctrl+V
تضمین حریم خصوصی بدون انتقال شبکه: صفر بایت به سرورهای خارجی آپلود می‌شود. تمام پردازش‌ها به صورت محلی در سندباکس مرورگر شما انجام شد.

امضای هدر در سطح بایت (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 (فعلی)BZ2BROTLIZSTD
سرعت خارج‌سازیسریع (~۳۰۰ مگابایت بر ثانیه)کند (~۴۰ مگابایت بر ثانیه)بسیار سریع (~۴۰۰ مگابایت بر ثانیه)فوق‌العاده سریع (>۱.۵ گیگابایت بر ثانیه)
پذیرش جهانی وب۱۰۰٪ تمام مرورگرها و سرورهاصفر پشتیبانی مرورگر وبپشتیبانی شده از طریق 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 ۳۲ بیتی.

بهترین روش‌های پدافندی:

تاریخچه و نقاط عطف

1996IETF مشخصات فرمت فایل Gzip را به عنوان RFC 1952 رسمی کرد.
1993توسط پروژه گنو برای جایگزینی ابزار اختصاصی یونیکس 'compress' (فایل‌های .Z) پذیرفته شد.
1992ژان-لوپ گالی و مارک آدلر Gzip را به عنوان یک ابزار فشرده‌سازی بدون پتنت برای جنبش نرم‌افزار آزاد ایجاد کردند.

مزایا و نقاط قوت کلیدی

  • بنچمارک جهانی برای فشرده‌سازی 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 استفاده کنید.