זרם Brotli (.br)

IETF תקן

Brotli הוא אלגוריתם דחיסת נתונים ללא אובדן בקוד פתוח שפותח על ידי גוגל, המותאם במיוחד לטיפוגרפיה באינטרנט (WOFF2) וקידוד תוכן HTTP‏ (Content-Encoding: br) כדי להאיץ את אספקת דפי האינטרנט.

המר BROTLI ל-GZIP

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

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

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

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

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

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

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

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

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

CE B2 CF 81

ייצוג ASCII: βÏ\x81

תקינה: IETF RFC 7932

מפרט טכני

מבנה המכולהמסגור של זרם סיביות גולמי עם הצהרת גודל חלון אופציונלית ומטא-בלוקים
דחיסהמילון הזזה LZ77 (עד 16 MB), מידול הקשר מסדר שני ומילון סטטי של 120 KB
סדר בתים (Endianness)אריזת סיביות Little-Endian
מרחבי צבעלא רלוונטי (זרם דחיסת נתונים)
ערוצים ומבנהדחיסת זרם בתים לשימוש כללי
ממדים מרבייםאורך שרירותי של זרם בתים (תומך בהזרמה ללא הגבלת אורך)
שקיפותשימור נתונים ללא אובדן, בדיוק בית-מול-בית, לאחר הלוך ושוב
הזרמה ופרוגרסיביותחלוקה למטא-בלוקים מאפשרת הזרמת HTTP רציפה במקטעים

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

תכונה טכניתBrotli (נוכחי)GZZSTDDEFLATE
מילון סטטי מובנהכולל מילון אינטרנט בגודל 120 קילו-בייטללא (דינמי בלבד)מילונים שהמשתמש יכול לאמןללא (דינמי בלבד)
דחיסת אינטרנט (לעומת Gzip)קטנים ב-15% עד 25% מ-Gzipתקן בסיס (Gzip)קטנים ב-10% עד 20% מ-GzipDeflate בסיסי
קידוד תוכן HTTP'Content-Encoding: br''Content-Encoding: gzip''Content-Encoding: zstd''Content-Encoding: deflate'
מטרת התכנון העיקריתהעברת טקסט וגופנים באינטרנטדחיסת קבצי Unix כלליתבסיס נתונים בזמן אמת והכנסת נתוניםאלגוריתם הדחיסה הבסיסי

מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)

הדפדפן נכשל בטעינת משאב עם 'ERR_CONTENT_DECODING_FAILED'.

גורם שורש: פרוקסי או שרת קיצצו את זרם Brotli לפני שידור המטה-בלוק הסופי.

שחזור: נקה את מטמון הדפדפן, בדוק את הגדרות הדחיסה בשרת או פרוס את הקובץ מקומית באמצעות File2File.app.

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

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

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

  • קריאת מצביע מחוץ לגבולות בעת הפניה להיסטים במילון הסטטי שמחוץ לגודל הטבלה.
  • פצצת פענוח (שוות ערך לפצצת zip), שמכלה את זיכרון הלקוח באמצעות מטענים זעירים.
  • גלישת חוצץ במהלך שינוי גודל של חוצץ טבעתי בחלון הזזה.

שיטות מומלצות להגנה: אכיפת גדלי חוצץ פלט מרביים במהלך פיענוח של זרמי Brotli לא מהימנים.

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

2016IETF פרסם את Brotli כ-RFC 7932.
2015גוגל התאימה את Brotli לשימוש כללי כחלופה ל-Gzip לדחיסת תוכן אינטרנט באמצעות HTTP.
2013מהנדסי גוגל Jyrki Alakuijala ו-Zoltán Szabadka מציגים את Brotli לדחיסת גופני אינטרנט WOFF2.

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

  • יחס דחיסה טוב יותר ב-15% עד 25% מזה של Gzip עבור נכסי אינטרנט כמו HTML, CSS ו-JavaScript.
  • משלב מילון סטטי מוגדר מראש בגודל 120 קילו-בייט של מילים נפוצות באינטרנט, תגיות HTML וביטויים.
  • מהירות פענוח מהירה במיוחד, המבטיחה עיבוד דפים בצד הלקוח כמעט מיידי.

מגבלות טכניות וחסרונות

  • דחיסה ברמה 11 יקרה מבחינה חישובית (המתאימה ביותר לדחיסה מוקדמת של נכסים סטטיים).
  • דורש HTTPS בכל דפדפני האינטרנט כדי למנוע השחתה על ידי פרוקסי שקוף.
  • בקובצי .br גולמיים אין שמות קבצים או כותרות הרשאות משובצים, אלא אם הם נארזים במעטפת חיצונית.

עובדות טכניות מעניינות

  • Brotli נקרא על שם 'Brötli', שמשמעותו 'לחם קטן' בגרמנית שוויצרית.
  • המילון הסטטי בגודל 120 קילו-בייט בתוך Brotli מכיל אלפי מקטעים נפוצים באנגלית, בספרדית, בגרמנית, בסינית וב-HTML.
  • שרתי אינטרנט ודפדפנים מרכזיים תומכים ב-Brotli, אך שיעור התעבורה המשתמש בו משתנה לפי השירות וסוג התגובה.

שאלות טכניות נפוצות

מדוע Brotli מהיר יותר מ-Gzip עבור אתרי אינטרנט?

Brotli עשוי ליצור קובצי טקסט לאינטרנט שקטנים מאלה של Gzip בחלק מהמקרים, אך ההבדל תלוי בתוכן, בהגדרות הדחיסה ובמימוש.

מדוע Brotli דורש HTTPS?

דפדפני אינטרנט תומכים ב-Brotli רק דרך חיבורי HTTPS מאובטחים, משום שפרוקסי שקופים ישנים באינטרנט היו עלולים לפרש לא נכון את הקידוד החדש 'br' או להשחית אותו.

כיצד אוכל לפענח קובץ .br?

ניתן לפענח קבצי .br או .brotli לטקסט רגיל או לקבצים המקוריים באופן מיידי באמצעות File2File.app ישירות בדפדפן האינטרנט שלך.