فرمت باز فونت وب (.woff)

W3C استاندارد

فرمت فونت وب باز (WOFF) اولین نسل تاریخی از استانداردهای باز فونت وب است که توسط W3C تأیید شده و فونت‌های استاندارد TrueType یا OpenType را با فشرده‌سازی zlib و متادیتای لایسنس XML بسته‌بندی می‌کند.

بررسی و فراداده

سیستم‌عامل‌ها و تحلیلگرهای فایل، فایل‌های WOFF را با بررسی توالی بایت‌های دودویی ابتدایی شناسایی می‌کنند:

انتخاب یا رها کردن فایل‌ها در اینجا

تبدیل ۱۰۰٪ خصوصی در مرورگر - فایل‌ها هرگز دستگاه شما را ترک نمی‌کنند

یا جای‌گذاری کنید Ctrl+V
تضمین حریم خصوصی بدون انتقال شبکه: صفر بایت به سرورهای خارجی آپلود می‌شود. تمام پردازش‌ها به صورت محلی در سندباکس مرورگر شما انجام شد.

امضای هدر در سطح بایت (Magic Bytes)

سیستم‌عامل‌ها و تحلیلگرهای فایل، فایل‌های WOFF را با بررسی توالی بایت‌های دودویی ابتدایی شناسایی می‌کنند:

امضای HEX (آفست 0):

77 4F 46 46

نمایش ASCII: wOFF

استانداردسازی: W3C Recommendation (2012)

مشخصات فنی

معماری کانتینر44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data
فشرده‌سازیDeflate (zlib) compression applied to each individual font table
ترتیب بایت‌ها (Endianness)Big-Endian (SFNT standard)
فضاهای رنگیInherited from underlying font tables
کانال‌ها و ساختارTrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features
حداکثر ابعادUp to 65,535 glyphs per font file
شفافیت مشخصاتInherited from underlying font format
استریمینگ و پیش‌روندهTable-by-table decompression enables streaming font loading

ماتریس مقایسه فنی: 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)
حجم نسبی فایل~۴۰٪ کوچکتر از TTF~۶۰٪ کوچکتر از TTFاستاندارد پایه (۱۰۰٪)استاندارد پایه (۱۰۰٪)
محیط هدفمرورگرهای وب قدیمی (IE9+، سافاری ۵+)مرورگرهای وب مدرن (جهانی)سیستم‌عامل‌های دسکتاپانتشارات دسکتاپ و چاپ

حالت‌های رایج خرابی و راهنمای بازیابی هگز

هشدار کنسول مرورگر: 'Failed to decode downloaded font: OTS parsing error'.

علت ریشه‌ای: عدم تطابق در طول جدول اعلام شده و فشرده‌نشده یا آسیب دیدن استریم zlib.

بازیابی: بازسازی فشرده‌سازی جداول فونت یا تبدیل به WOFF2 با استفاده از مبدل فونت File2File.

تحلیل امنیتی و بردارهای حمله تجزیه‌کننده (Parser)

مرورگرهای وب فایل‌های WOFF دانلود شده از دامنه‌های وب غیرقابل اعتماد را با استفاده از ضدعفونی‌کننده OpenType (OTS) برای مسدود کردن بارهای اکسپلویت تجزیه می‌کنند.

بردارهای حمله شناخته‌شده

  • سرریز بافر در طول فشرده‌سازی‌زدایی zlib از قطعات جدول فونت خراب.
  • فیلدهای طول جدول نامعتبر که باعث سرریز بافر پشته در رندرر فونت می‌شوند.
  • حمله انکار خدمات از طریق اتمام حافظه در حین گسترش جدول فونت.

بهترین روش‌های پدافندی:

تاریخچه و نقاط عطف

2018به دلیل فشرده‌سازی برتر Brotli، فرمت WWOFF2 به عنوان استاندارد ترجیحی فونت وب جایگزین آن شد.
2012W3C به‌طور رسمی WOFF 1.0 را به عنوان یک استاندارد رسمی وب منتشر کرد.
2009هنریک ریدگارد، تال لیمینگ و جاناتان کیو WOFF را برای حل نگرانی‌های مربوط به لایسنس فونت وب مشخص کردند.

مزایا و نقاط قوت کلیدی

  • حجم فایل‌های فونت وب را در مقایسه با فایل‌های خام و فشرده‌نشده TTF یا OTF بین ۳۰٪ تا ۵۰٪ کاهش می‌دهد.
  • سازگاری معکوس جهانی در تمام مرورگرهای وب دسکتاپ و موبایل عرضه شده از سال ۲۰۱۱ تاکنون.
  • شامل یک بلوک متادیتای XML اختیاری برای لایسنس فونت، اعتبار نویسنده و اطلاعات کپی‌رایت کارخانه سازنده است.

محدودیت‌ها و معایب فنی

  • توسط WOFF2 منسوخ شده است که با استفاده از الگوریتم Brotli حدود ۳۰٪ بیشتر فشرده‌سازی می‌کند.
  • بدون تبدیل به TTF/OTF مستقیماً روی سیستم‌عامل‌های دسکتاپ (ویندوز/مک) قابل نصب نیست.
  • الگوریتم قدیمی‌تر فشرده‌سازی zlib نسبت به رمزگذارهای انتروپی مدرن کارایی کمتری دارد.

نکات فنی جالب

  • بایت‌های جادویی برای WOFF 1.0 برابر با 'wOFF' (0x77 0x4F 0x46 0x46) است، در حالی که WOFF 2.0 از 'wOF2' استفاده می‌کند.
  • شرکت‌های ساخت فونت تنها پس از ایجاد WOFF موافقت کردند که فونت‌های خود را روی وب قرار دهند، زیرا کانتینر تخصصی آن فونت‌های وب را از فونت‌های دسکتاپ قابل کپی غیرمجاز متمایز می‌کرد.
  • WOFF ابتدا در سال ۲۰۱۰ در فایرفاکس ۳.۶ پیاده‌سازی شد و سپس به عنوان توصیه رسمی W3C درآمد.

سوالات فنی متداول

تفاوت بین WOFF و WOFF2 چیست؟

WOFF از فشرده‌سازی zlib استفاده می‌کند، در حالی که WOFF2 از الگوریتم جدیدتر Brotli گوگل و تبدیل‌های جدول بهره می‌برد که در نتیجه فایل‌هایی تقریباً ۳۰٪ کوچک‌تر از WOFF تولید می‌کند.

چگونه می‌توانم یک فونت WOFF را برای استفاده روی دسکتاپ به TTF یا OTF تبدیل کنم؟

شما می‌توانید با استفاده از File2File.app مستقیماً در مرورگر وب خود، فایل‌های WOFF را در چند ثانیه به فونت‌های دسکتاپ قابل نصب TTF یا OTF تبدیل کنید.

آیا هنوز در وب‌سایت‌های مدرن به WOFF 1.0 نیاز دارم؟

خیر. تمام مرورگرهای مدرن به‌طور پیش‌فرض از WOFF2 پشتیبانی می‌کنند. WOFF 1.0 فقط در صورتی مورد نیاز است که مجبور باشید از مرورگرهای قدیمی و منسوخ مانند اینترنت اکسپلورر پشتیبانی کنید.