تنسيق خطوط الويب المفتوحة (.woff)

توصية قياسي

تنسيق خطوط الويب المفتوح (WOFF) هو أول معيار مفتوح لخطوط الويب، أقرّه اتحاد شبكة الويب العالمية (W3C). ويضم خطوط TrueType أو OpenType القياسية في حاوية مضغوطة بخوارزمية zlib، مع بيانات ترخيص وصفية بصيغة XML.

فحص البيانات الوصفية

تتعرف أنظمة التشغيل ومحللات الملفات على ملفات WOFF من خلال فحص تسلسل البايت الثنائي البادئ:

اختر الملفات أو أسقطها هنا

خاص - لا تغادر الملفات جهازك أبدًا

أو الصق Ctrl+V
ضمان الخصوصية وعدم الإرسال عبر الشبكة: صفر بايت يتم رفعه إلى خوادم خارجية. تمت كل عمليات المعالجة محلياً في صندوق الحماية (Sandbox) الخاص بمتصفحك.

توقيع رأس الملف على مستوى البايت (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 (الحالي)WOFF2TTFOTF
ترميز الضغطDeflate (zlib) لكل جدولBrotli مع معالجة مسبقة للجدولSFNT غير مضغوطSFNT غير مضغوط
التوقيع المميزwOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (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 قبل تمريرها إلى محركات خطوط نظام التشغيل.

الأصول التاريخية والمحطات الرئيسية

2018حلّ WOFF2 محل WOFF بوصفه تنسيق خطوط الويب المفضل بفضل ضغط Brotli الأعلى كفاءة.
2012نشرت W3C رسميًا مواصفات WOFF 1.0 كتوصية معيارية للويب.
2009حدّد Henrik Rydgård وTal Leming وJonathan Kew مواصفات WOFF لمعالجة مخاوف ترخيص خطوط الويب.

المزايا الرئيسية والإيجابيات

  • يمكن أن يقلل حجم ملفات خطوط الويب مقارنة بملفات 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.