ארכיון GZIP (.gz)

IETF תקן

Gzip (GZ) הוא י הדחיסה ותבנית הקבצים הסטנדרטית של GNU, המופץ באופן במערכות הפעלה דמויות Unix ובשרתי אינטרנט HTTP לצורך דחיסה מהירה של קבצים ונכסי אינטרנט.

המר TAR ל-GZ

ממיר חינמי מ-TAR ל-GZ פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.

בדיקה ומטא-נתונים

מערכות הפעלה ומנתחי קבצים מזהים קבצי GZ על ידי בדיקת רצף הבייטים הבינארי הראשוני:

בחר או גרור קבצים לכאן

פרטי - הקבצים לעולם אינם עוזבים את המכשיר שלך

או הדבק Ctrl+V
הבטחת פרטיות ללא העברת נתונים ברשת: 0 בייט הועלו לשרתים חיצוניים. כל העיבוד התבצע באופן מקומי בארגז החול של הדפדפן שלך.

חתימת כותרת ברמת הבייט (Magic Bytes)

מערכות הפעלה ומנתחי קבצים מזהים קבצי GZ על ידי בדיקת רצף הבייטים הבינארי הראשוני:

חתימת HEX (היסט 0):

1F 8B 08

ייצוג ASCII: ..\x08

תקינה: IETF RFC 1952

מפרט טכני

מבנה המכולהכותרת בת 10 בתים (ערך קסם 0x1F 0x8B, שיטה 8, דגלים, mtime, OS) ואחריה זרם DEFLATE וכותרת תחתונה בת 8 בתים
דחיסהאלגוריתם DEFLATE (חלון הזזה של LZ77 + קידוד Huffman)
סדר בתים (Endianness)מספרים שלמים בכותרת ובכותרת התחתונה בסדר מהפחות משמעותי ליותר משמעותי
מרחבי צבעלא רלוונטי (מכולת ארכיון)
ערוצים ומבנהזרם בתים דחוס של קובץ יחיד
ממדים מרבייםהגודל הלא דחוס מתועד לפי מודולו 2^32 (תומך בזרמים באורך בלתי מוגבל)
שקיפותשימור נתונים ללא אובדן, בדיוק של 100% ברמת הסיביות
הזרמה ופרוגרסיביותהזרמת הפעלה רציפה במעבר יחיד דרך צינורות ורשתות HTTP

מטריצת השוואה טכנית: GZ מול מתחרים

תכונה טכניתGZ (נוכחי)BZ2BROTLIZSTD
מהירות פריסהמהירה (~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.app Gzip.

ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)

מנתחי Gzip מעבדים כותרות וזרמי סיביות DEFLATE הנשלטים על ידי המשתמש, ויש להגן עליהם מפני פצצות דחיסה.

ווקטורי תקיפה ידועים

  • פצצת דחיסה (פצצת zip) המרחיבה מגה-בייט של נתוני Gzip למאות ג'יגה-בייט של נפח אחסון בדיסק.
  • גלישת חוצץ (Buffer overflow) בעת קריאת מחרוזת שם הקובץ המקורי האופציונלי מהכותרת.
  • גלישת מספר שלם (Integer overflow) במהלך השוואת בדיקת ה-CRC של 32-ביט.

שיטות מומלצות להגנה: אכוף מכסות שחרור דחיסה קפדניות ומגבלות תקרה של זיכרון בשירותי עיבוד אוטומטיים.

היסטוריה ואבני דרך

1996ה-IETF ממסד את מפרט תבנית הקבצים Gzip בתור RFC 1952.
1993אומץ על ידי פרויקט GNU כדי להחליף את כלי ה-'compress' הקנייני של Unix (קבצי .Z).
1992ז'אן-לופ גאילי ומארק אדלר יוצרים את Gzip ככלי דחיסה נטול פטנטים עבור תנועת התוכנה החופשית.

יתרונות מרכזיים

  • מדד הייחוס האוניברסלי לדחיסת 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 ישירות בדפדפן האינטרנט שלך ללא התקנת תוכנה כלשהי.