Web Open Font Format (.woff)

W3C Стандарт

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

Анализ и метаданные

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

Выберите или перетащите файлы сюда

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

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

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

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

HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):

77 4F 46 46

ПРЕДСТАВЛЕНИЕ ASCII: wOFF

Стандартизация: W3C Recommendation (2012)

Технические спецификации

Архитектура контейнераЗаголовок WOFF размером 44 байта, за которым следует каталог таблиц, сжатые данные таблиц zlib, необязательные расширенные метаданные и личные данные
СжатиеСжатие Deflate (zlib), применяемое к каждой отдельной таблице шрифта
Порядок байтов (Endianness)Обратный порядок байтов (Big-Endian, стандарт 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+)Современные веб-браузеры (универсально)Настольные операционные системыНастольные издательские системы и печать

Типичные режимы повреждения и руководство по восстановлению в HEX

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

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

Восстановление: Выполните повторное сжатие таблиц шрифта или конвертируйте в WOFF2 с помощью конвертера шрифтов File2File.

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

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

Известные векторы атак

  • Чтение за пределами буфера во время декомпрессии zlib поврежденных фрагментов таблицы шрифтов.
  • Несоответствующие поля длины таблиц, вызывающие переполнение буфера кучи в модулях рендеринга шрифтов.
  • Отказ в обслуживании из-за исчерпания памяти при расширении таблицы шрифтов.

Защитные лучшие практики: Всегда проверяйте загруженные файлы WOFF с помощью OTS перед передачей их в системные модули рендеринга шрифтов.

Исторические истоки и вехи

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.