Web Open Font Format (.woff)

W3C Стандарт

Web Open Font Format (WOFF) - це історичний вебшрифтний формат першого покоління з відкритим стандартом, схвалений W3C, який обгортає стандартні шрифти TrueType або OpenType за допомогою стиснення zlib та метаданих ліцензування XML.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли WOFF, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

100% приватна конвертація у браузері - файли ніколи не покидають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності з нульовою передачею мережею: 0 байт завантажено на зовнішні сервери. Уся обробка виконується локально в пісочниці вашого браузера.

Сигнатура заголовка на байтовому рівні (Magic Bytes)

Операційні системи та аналізатори файлів ідентифікують файли WOFF, перевіряючи початкову послідовність бінарних байтів:

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 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)
Відносний розмір файлу~на 40% менший за TTF~на 60% менший за TTFБазовий стандарт (100%)Базовий стандарт (100%)
Цільове середовищеЗастарілі веббраузери (IE9+, Safari 5+)Сучасні веббраузери (Універсально)Операційні системи для ПКНастільні видавничі системи та друк

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Попередження в консолі браузера: 'Failed to decode downloaded font: OTS parsing error'.

Першопричина: Невідповідність заявленої довжини нестисненої таблиці або пошкоджений потік zlib.

Відновлення: Повторно стисніть таблиці шрифтів або конвертуйте у WOFF2 за допомогою конвертера шрифтів File2File.

Аналіз безпеки та векторів атак на парсери

Веббраузери аналізують файли WOFF, завантажені з неперевірених доменів, за допомогою санітайзера OpenType (OTS) для блокування шкідливих пейлоадів.

Відомі вектори атак

  • Перевищення буфера під час декомпресії zlib пошкоджених фрагментів таблиці шрифтів.
  • Невідповідність полів довжини таблиці, що викликає переповнення буфера купи в засобах рендерингу шрифтів.
  • Відмова в обслуговуванні через вичерпання пам'яті під час розширення таблиці шрифтів.

Захисні найкращі практики:

Історичне походження та віхи

2018Змінено на WOFF2 як кращий стандарт вебшрифтних файлів через вищу якість стиснення Brotli.
2012W3C офіційно публікує WOFF 1.0 як офіційну рекомендацію вебстандарту.
2009Генрік Ридгорд, Тал Лемінг та Джонатан К'ю розробляють специфікацію WOFF для вирішення питань ліцензування вебшрифтів.

Головні переваги та плюси

  • Зменшує розмір файлів вебшрифтів на 30% - 50% порівняно з нестисненими файлами TTF або OTF.
  • Універсальна зворотна сумісність з усіма настільними та мобільними веббраузерами, випущеними після 2011 року.
  • Містить додатковий блок метаданих XML для ліцензування шрифту, згадки авторів та інформації про авторські права ливарні.

Технічні обмеження та мінуси

  • Витіснений форматом WOFF2, який стискає приблизно на 30% ефективніше за допомогою алгоритму 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.