تدفق Brotli (.br)
IETF قياسيBrotli خوارزمية مفتوحة المصدر لضغط البيانات دون فقدان، طورتها Google وحُسّنت خصيصًا لضغط خطوط الويب (WOFF2) وترميز محتوى HTTP (Content-Encoding: br) لتسريع تحميل صفحات الإنترنت.
تحويل BROTLI إلى GZIP
محول مجاني داخل المتصفح للتحويل من BROTLI إلى GZIP. قم بتحويل الملفات فوراً على جهازك.
فحص البيانات الوصفية
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات Brotli من خلال فحص تسلسل البايت الثنائي البادئ:
توقيع رأس الملف على مستوى البايت (Magic Bytes)
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات Brotli من خلال فحص تسلسل البايت الثنائي البادئ:
التوقيع الست عشري (الإزاحة 0):
CE B2 CF 81تمثيل ASCII: βÏ\x81
التوحيد القياسي: IETF RFC 7932
المواصفات الفنية
| هيكلية الحاوية | تأطير تدفق بتات خام مع إعلان اختياري لحجم النافذة وكتل البيانات الوصفية |
| الضغط | قاموس انزلاقي LZ77 (حتى 16 MB)، ونمذجة سياق من الرتبة الثانية، وقاموس ثابت بحجم 120 KB |
| ترتيب البايتات (Endianness) | تعبئة بتات بترتيب Little-Endian |
| مساحات الألوان | N/A (Data Compression Stream) |
| القنوات والبنية | ضغط تدفق بايتات للأغراض العامة |
| الحد الأقصى للأبعاد | طول تدفق بايتات غير محدد (يدعم البث غير المحدود) |
| الشفافية | حفظ البيانات دون فقد، مع تطابق تام بايتًا ببايت عند فك الضغط |
| البث والتحميل التدرجي | يتيح تقسيم كتل البيانات الوصفية النقل المتواصل بالبث المجزأ عبر HTTP |
مصفوفة المقارنة التقنية: Brotli مقابل المنافسين
| السمة التقنية | Brotli (الحالي) | GZ | ZSTD | DEFLATE |
|---|---|---|---|---|
| القاموس الثابت المدمج | يحتوي على قاموس ويب بحجم 120 كيلوبايت | لا يوجد (ديناميكي فقط) | قواميس يمكن للمستخدم تدريبها | لا يوجد (ديناميكي فقط) |
| ضغط الويب (مقابل Gzip) | حجم أصغر بنسبة 15% إلى 25% مقارنةً بـ Gzip | المعيار الأساسي (Gzip) | حجم أصغر بنسبة 10% إلى 20% مقارنةً بـ Gzip | معيار Deflate الأساسي |
| ترميز محتوى HTTP | 'Content-Encoding: br' | 'Content-Encoding: gzip' | 'Content-Encoding: zstd' | 'Content-Encoding: deflate' |
| هدف التصميم الأساسي | نقل نصوص الويب وخطوطه | ضغط الملفات للأغراض العامة في Unix | قواعد البيانات في الوقت الفعلي واستيعاب البيانات | خوارزمية ضغط أساسية |
أنماط التلف الشائعة ودليل الاسترداد بالنظام الست عشري
يفشل المتصفح في تحميل المورد مع ظهور خطأ 'ERR_CONTENT_DECODING_FAILED'.
السبب الجذري: قام الوكيل (Proxy) أو الخادم بتر دفق Brotli قبل إرسال الكتلة الوصفية (Meta-block) النهائية.
الاسترداد: امسح ذاكرة التخزين المؤقت للمتصفح، وتحقق من إعدادات ضغط الخادم، أو فك الضغط محليًا عبر File2File.app.
تحليل الأمان ومتجهات الهجوم على المحلّل
يتطلب القاموس الثابت ونمذجة السياق في Brotli فحوصًا صارمة لحدود الذاكرة للتحقق من المراجع الخلفية المشوهة.
ناقلات الهجوم المعروفة
- قراءة مؤشر خارج الحدود عند الإشارة إلى إزاحات القاموس الثابت التي تتجاوز حجم الجدول.
- قنبلة فك ضغط، أي ما يعادل قنبلة ZIP، تستنفد ذاكرة العميل انطلاقًا من حمولة صغيرة.
- تجاوز سعة المخزن المؤقت أثناء تغيير حجم مخزن الحلقة لنافذة الانزلاق (Sliding window ring buffer).
أفضل الممارسات الدفاعية: افرض حدًا أقصى لحجم مخزن الإخراج المؤقت أثناء فك ضغط تدفقات Brotli غير الموثوقة.
الأصول التاريخية والمحطات الرئيسية
المزايا الرئيسية والإيجابيات
- نسبة ضغط أفضل من Gzip بمقدار 15% إلى 25% لملفات الويب مثل HTML وCSS وJavaScript.
- تتضمن قاموسًا ثابتًا محددًا مسبقًا بحجم 120 كيلوبايت، يضم كلمات شائعة على الويب وعلامات HTML وعبارات متداولة.
- سرعة فائقة للغاية في فك الضغط، مما يضمن عرض صفحات الويب للمستخدم بشكل شبه فوري.
القيود الفنية والسلبيات
- الضغط في المستوى 11 مكلف حسابياً (وهو مناسب أكثر للضغط المسبق للأصول الثابتة).
- يتطلب استخدام HTTPS في جميع متصفحات الويب لمنع تلف البيانات بسبب الوكلاء الشفافين.
- ملفات .br الخام تفتقر إلى اسم ملف مدمج أو ترويسات الصلاحيات ما لم تُضمَّن في حاوية خارجية.
معلومات تقنية طريفة
- سُمّيت Brotli نسبةً إلى كلمة 'Brötli'، التي تعني 'خبزًا صغيرًا' بالألمانية السويسرية.
- القاموس الثابت بحجم 120 كيلوبايت داخل Brotli يحتوي على آلاف المقاطع الشائعة باللغات الإنجليزية، والإسبانية، والألمانية، والصينية، ومقتطفات HTML.
- يدعم Brotli خوادم ويب ومتصفحات رئيسية، لكن حصة استخدامه تختلف حسب الخدمة ونوع الاستجابة.
الأسئلة التقنية المتكررة
لماذا يُعد Brotli أسرع من Gzip لمواقع الويب؟
يضغط Brotli ملفات HTML وCSS وJS لتصبح أصغر بنسبة 20% مقارنةً بملفات Gzip، مع سرعة فك ضغط مماثلة، ما يقلل عدد مرات تبادل البيانات المطلوبة عبر شبكات الهاتف المحمول.
لماذا يتطلب Brotli بروتوكول HTTPS؟
لا تدعم متصفحات الويب Brotli إلا عبر اتصالات HTTPS الآمنة، لأن الوكلاء الشفافين القديمة على الإنترنت قد تسيء تفسير ترميز 'br' الجديد أو تفسده.
كيف يمكنني فك ضغط ملف .br؟
يمكنك فك ضغط ملفات .br أو .brotli فورًا إلى نص عادي أو إلى الملفات الأصلية باستخدام File2File.app مباشرةً في المتصفح.