ארכיון GZIP (.gz)
IETF תקןGzip (GZ) הוא כלי הדחיסה ותבנית הקבצים הסטנדרטית של GNU, המופץ באופן אוניברסלי במערכות הפעלה דמויות Unix ובשרתי אינטרנט 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 |
|---|---|---|---|---|
| מהירות פריסה | מהירה (~300 מגה-בייט/שנייה) | איטית (~40 מגה-בייט/שנייה) | מהירה מאוד (~400 מגה-בייט/שנייה) | מהירה במיוחד (>1.5 ג'יגה-בייט/שנייה) |
| אימוץ אינטרנט אוניברסלי | 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.
ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)
מנתחי Gzip מעבדים כותרות וזרמי סיביות DEFLATE הנשלטים על ידי המשתמש, ויש להגן עליהם מפני פצצות דחיסה.
ווקטורי תקיפה ידועים
- פצצת דחיסה (פצצת zip) המרחיבה מגה-בייט של נתוני Gzip למאות ג'יגה-בייט של נפח אחסון בדיסק.
- גלישת חוצץ (Buffer overflow) בעת קריאת מחרוזת שם הקובץ המקורי האופציונלי מהכותרת.
- גלישת מספר שלם (Integer overflow) במהלך השוואת בדיקת ה-CRC של 32-ביט.
השיטות המומלצות להגנה:
היסטוריה ואבני דרך
יתרונות מרכזיים
- מדד הייחוס האוניברסלי לדחיסת HTTP באינטרנט ('Content-Encoding: gzip') הנתמך על ידי 100% מדפדפני האינטרנט.
- שומר על חותמות הזמן המקוריות של שינוי הקובץ ושמות הקבצים המקוריים האופציונליים בתוך כותרת ה-10 בתים.
- טביעת רגל מעבד (CPU) קלה במהלך פריסה, הפועלת באופן חלק בהתקנים ניידים ובנתבים בעלי הספק נמוך.
מגבלות טכניות וחסרונות
- דחיסת קובץ בודד בלבד: אינו יכול לדחוס מספר קבצים או תיקיות מבלי לארוז אותם תחילה בתוך מעטפת TAR.
- יחס הדחיסה נמוך יותר מאשר אלגוריתמים מודרניים כמו Brotli ו-Zstandard על טקסט אינטרנט מודרני.
- שדה גודל הקובץ הלא דחוס בכותרת התחתונה הוא 32-ביט מודולו 2^32, הגורם לבאגים בתצוגת גלישה בקבצים הגדולים מ-4 GB.
עובדות טכניות מעניינות
- בתי הקסם (magic bytes) 0x1F 0x8B נבחרו משום ש-0x1F היה היסטורית הבת הראשון של קבצי 'compress' ב-Unix, בעוד ש-0x8B זיהה את Gzip.
- מעל 80% מכלל אתרי האינטרנט ברשת משתמשים בדחיסת Gzip כדי לספק דפי אינטרנט לדפדפנים.
- ז'אן-לופ גאילי כתב את קוד הדחיסה בעוד שמארק אדלר כתב את קוד הפריסה (inflate); שניהם קיבלו את פרס ACM למערכות תוכנה.
שאלות טכניות נפוצות
מדוע איני יכול לדחוס תיקייה באמצעות Gzip?
Gzip תוכנן לדחוס זרם בייטים בודד. כדי לדחוס תיקייה, מערכות יוניקס אורזות תחילה את התיקייה לקובץ .tar יחיד, ואז דוחסות אותו באמצעות Gzip כדי ליצור קובץ .tar.gz.
מה ההבדל בין .gz ל-.zip?
.zip הוא פורמט ארכיון המארז מספר קבצים יחד עם אינדקס ספרייה. .gz דוחס קובץ יחיד בלבד ומצורף בדרך כלל ל-tar במערכות יוניקס.
כיצד אוכל לפענח קובץ .gz ב-Windows או ב-Mac?
השתמש ב-File2File.app כדי לפענח באופן מיידי קבצי .gz ישירות בדפדפן האינטרנט שלך ללא התקנת תוכנה כלשהי.