تنسيق خطوط الويب المفتوحة (.woff)
توصية قياسيتنسيق خطوط الويب المفتوح (WOFF) هو أول معيار مفتوح لخطوط الويب، أقرّه اتحاد شبكة الويب العالمية (W3C). ويضم خطوط TrueType أو OpenType القياسية في حاوية مضغوطة بخوارزمية zlib، مع بيانات ترخيص وصفية بصيغة XML.
فحص البيانات الوصفية
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات WOFF من خلال فحص تسلسل البايت الثنائي البادئ:
توقيع رأس الملف على مستوى البايت (Magic Bytes)
تتعرف أنظمة التشغيل ومحللات الملفات على ملفات WOFF من خلال فحص تسلسل البايت الثنائي البادئ:
التوقيع الست عشري (الإزاحة 0):
77 4F 46 46تمثيل ASCII: wOFF
التوحيد القياسي: توصية W3C (2012)
المواصفات الفنية
| هيكلية الحاوية | ترويسة WOFF بحجم 44 بايت، تليها قائمة الجداول وبياناتها المضغوطة بـ zlib، ثم بيانات وصفية موسعة اختيارية وبيانات خاصة |
| الضغط | ضغط Deflate (zlib) لكل جدول من جداول الخط على حدة |
| ترتيب البايتات (Endianness) | ترتيب البايتات من الأكبر إلى الأصغر (معيار SFNT) |
| مساحات الألوان | تُورَث من جداول الخط الأساسية |
| القنوات والبنية | محيطات المحارف بصيغتي TrueType (glyf) أو PostScript (CFF)، ومقاييس الخط وخصائصه الطباعية |
| الحد الأقصى للأبعاد | حتى 65,535 محرفًا في ملف الخط الواحد |
| الشفافية | تُورَث من تنسيق الخط الأساسي |
| البث والتحميل التدرجي | يتيح فك ضغط الجداول واحدًا تلو الآخر تحميل الخط تدريجيًا |
مصفوفة المقارنة التقنية: WOFF مقابل المنافسين
| السمة التقنية | WOFF (الحالي) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| ترميز الضغط | Deflate (zlib) لكل جدول | Brotli مع معالجة مسبقة للجدول | SFNT غير مضغوط | SFNT غير مضغوط |
| التوقيع المميز | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| حجم الملف النسبي | أصغر بنحو 40% من TTF | أصغر بنحو 60% من TTF | المعيار الأساسي (100%) | المعيار الأساسي (100%) |
| البيئة المستهدفة | متصفحات الويب الأقدم (IE9+، Safari 5+) | يختلف الدعم حسب المتصفح. | أنظمة تشغيل سطح المكتب | النشر المكتبي والطباعة |
أنماط التلف الشائعة ودليل الاسترداد بالنظام الست عشري
تحذير وحدة تحكم المتصفح: 'تعذّر فك ترميز الخط المُنزَّل: خطأ في تحليل OTS'.
السبب الجذري: عدم تطابق في طول الجدول غير المضغوط المُعلَن عنه أو تضرر تدفق zlib.
الاسترداد: إعادة ضغط جداول الخطوط أو التحويل إلى WOFF2 باستخدام أداة تحويل الخطوط File2File.app Font Converter.
تحليل الأمان ومتجهات الهجوم على المحلّل
تقوم متصفحات الويب بتحليل ملفات WOFF المُنزَّلة من نطاقات ويب غير موثوق بها باستخدام أداة تنقية OpenType (OTS) لحظر حمولات الاستغلال.
ناقلات الهجوم المعروفة
- تجاوز قراءة المخزن المؤقت أثناء فك ضغط zlib لأجزاء جدول الخطوط التالفة.
- حقول طول جدول غير متطابقة تسبب تجاوزات مخزن الذاكرة المؤقتة للكومة في عارضات الخطوط.
- حجب الخدمة من خلال استنفاد الذاكرة أثناء توسيع جدول الخطوط.
أفضل الممارسات الدفاعية: نقِّ دائمًا ملفات WOFF المُنزّلة باستخدام OTS قبل تمريرها إلى محركات خطوط نظام التشغيل.
الأصول التاريخية والمحطات الرئيسية
المزايا الرئيسية والإيجابيات
- يمكن أن يقلل حجم ملفات خطوط الويب مقارنة بملفات TTF أو OTF الخام؛ ويعتمد مقدار التوفير على الخط والمُرمِّز.
- متوافق مع جميع متصفحات الويب لأجهزة الكمبيوتر والهواتف المحمولة الصادرة منذ عام 2011.
- يتضمن كتلة اختيارية من بيانات XML الوصفية لتراخيص الخطوط ونسبها إلى مؤلفيها وبيانات حقوق النشر الخاصة بجهة إنتاجها.
القيود الفنية والسلبيات
- حلّ WOFF2 محل WOFF في كثير من مسارات عمل الويب؛ فهو يستخدم ضغط Brotli وتحويلات لجداول الخطوط، وتختلف وفورات الحجم.
- لا يمكن تثبيته مباشرة في أنظمة تشغيل سطح المكتب (Windows/Mac) من دون تحويل إلى TTF/OTF.
- خوارزمية ضغط zlib القديمة أقل كفاءة من مشفرات الانتروبيا الحديثة.
معلومات تقنية طريفة
- بايتات السحر لتنسيق WOFF 1.0 هي 'wOFF' (0x77 0x4F 0x46 0x46)، بينما يستخدم WOFF 2.0 الرمز 'wOF2'.
- لم توافق الجهات المنتجة للخطوط على إتاحة خطوطها عبر الويب إلا بعد ظهور WOFF، إذ ميّزت حاويته الخاصة خطوط الويب من خطوط سطح المكتب التي يسهل نسخها دون إذن.
- ظهر دعم WOFF لأول مرة في Firefox 3.6 عام 2010، قبل أن يصبح التنسيق توصية رسمية من W3C.
الأسئلة التقنية المتكررة
ما الفرق بين WOFF وWOFF2؟
تستخدم WOFF ضغط zlib، بينما تستخدم WOFF2 خوارزمية Brotli الأحدث من Google وتحويلات الجداول، ما ينتج عنه ملفات أصغر بنحو 30% من ملفات WOFF.
كيف يمكنني تحويل خط WOFF إلى TTF أو OTF للاستخدام على سطح المكتب؟
يمكنك تحويل ملفات WOFF إلى خطوط TTF أو OTF قابلة للتثبيت على سطح المكتب في ثوانٍ عبر File2File.app مباشرةً في متصفح الويب.
هل ما زلت بحاجة إلى صيغة WOFF 1.0 على مواقع الويب الحديثة؟
لا. تدعم جميع المتصفحات الحديثة WOFF2 مباشرةً. ولا حاجة إلى WOFF 1.0 إلا عند دعم متصفحات قديمة مثل Internet Explorer.