Formato de fuente web abierta (.woff)
Recomendación EstándarWeb Open Font Format (WOFF) es el primer estándar histórico de fuentes web abiertas de primera generación respaldado por la W3C, que envuelve fuentes TrueType o OpenType estándar con compresión zlib y metadatos de licencia XML.
Inspeccionar y metadatos
Los sistemas operativos y analizadores de archivos identifican los archivos de WOFF inspeccionando la secuencia de bytes binarios inicial:
Firma de cabecera a nivel de bytes (Bytes mágicos)
Los sistemas operativos y analizadores de archivos identifican los archivos de WOFF inspeccionando la secuencia de bytes binarios inicial:
FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):
77 4F 46 46REPRESENTACIÓN ASCII: wOFF
Estandarización: Recomendación de la W3C (2012)
Especificaciones técnicas
| Arquitectura del contenedor | Cabecera WOFF de 44 bytes seguida del directorio de tablas, datos de tablas comprimidos con zlib, metadatos extendidos opcionales y datos privados |
| Compresión | Compresión Deflate (zlib) aplicada a cada tabla de fuentes individual |
| Orden de bytes (Endianness) | Big-Endian (Estándar SFNT) |
| Espacios de color | Heredado de las tablas de fuentes subyacentes |
| Canales y estructura | Contornos de glifos TrueType ('glyf') o PostScript ('CFF '), métricas y funciones tipográficas |
| Dimensiones máximas | Hasta 65 535 glifos por archivo de fuente |
| Transparencia | Heredado del formato de fuente subyacente |
| Streaming y progresivo | La descompresión tabla por tabla permite la carga de fuentes en streaming |
Matriz de comparación técnica: WOFF frente a la competencia
| Atributo técnico | WOFF (Actual) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Códec de compresión | Deflate (zlib) por tabla | Brotli con preprocesamiento de tablas | SFNT sin comprimir | SFNT sin comprimir |
| Firma mágica | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Tamaño de archivo relativo | ~40% más pequeño que TTF | ~60% más pequeño que TTF | Estándar base (100%) | Estándar base (100%) |
| Entorno de destino | Navegadores web heredados (IE9+, Safari 5+) | Navegadores web modernos (Universales) | Sistemas operativos de escritorio | Autoedición e impresión |
Modos de corrupción comunes y guía de recuperación hexadecimal
Advertencia en la consola del navegador: 'Failed to decode downloaded font: OTS parsing error'.
Causa raíz: Desajuste en la longitud de tabla sin comprimir declarada o flujo zlib dañado.
Recuperación: Recomprime las tablas de fuentes o conviértelas a WOFF2 usando el conversor de fuentes de File2File.
Análisis de seguridad y vectores de ataque al analizador
Los navegadores web analizan los archivos WOFF descargados de dominios web no confiables utilizando OpenType Sanitizer (OTS) para bloquear cargas útiles de explotación.
Vectores de ataque conocidos
- Lectura excesiva de búfer durante la descompresión zlib de fragmentos de tablas de fuentes corruptas.
- Campos de longitud de tabla desajustados que provocan desbordamientos de búfer de montículo (heap) en los renderizadores de fuentes.
- Denegación de servicio a través del agotamiento de la memoria durante la expansión de la tabla de fuentes.
Mejores prácticas defensivas: Sanea siempre los archivos WOFF descargados con OTS antes de pasarlos a los motores de fuentes del sistema operativo.
Orígenes históricos e hitos
Ventajas clave y pros
- Reduce el tamaño de los archivos de fuentes web entre un 30% y un 50% en comparación con los archivos TTF o OTF sin comprimir.
- Compatibilidad retroactiva universal en todos los navegadores web de escritorio y móviles lanzados desde 2011.
- Incluye un bloque de metadatos XML opcional para licencias de fuentes, créditos de autor e información de copyright de la fundición tipográfica.
Limitaciones técnicas y contras
- Superado por WOFF2, que comprime aproximadamente un 30% más pequeño utilizando el algoritmo Brotli.
- No se puede instalar directamente en sistemas operativos de escritorio (Windows/Mac) sin conversión a TTF/OTF.
- El algoritmo de compresión zlib más antiguo es menos eficiente que los codificadores de entropía modernos.
Curiosidades técnicas interesantes
- Los bytes mágicos para WOFF 1.0 son 'wOFF' (0x77 0x4F 0x46 0x46), mientras que WOFF 2.0 utiliza 'wOF2'.
- Las fundiciones tipográficas aceptaron permitir sus fuentes en la web solo después de que se creó WOFF, porque su contenedor especializado distinguía las fuentes web de las fuentes de escritorio pirateables.
- WOFF se implementó originalmente en Firefox 3.6 en 2010 antes de convertirse en una recomendación oficial de la W3C.
Preguntas técnicas frecuentes
¿Cuál es la diferencia entre WOFF y WOFF2?
WOFF utiliza compresión zlib, mientras que WOFF2 utiliza el algoritmo Brotli más nuevo de Google y transformaciones de tablas, lo que da como resultado archivos que son aproximadamente un 30% más pequeños que WOFF.
¿Cómo puedo convertir una fuente WOFF a TTF o OTF para uso de escritorio?
Puedes convertir archivos WOFF en fuentes de escritorio TTF o OTF instalables en segundos usando File2File.app directamente en tu navegador web.
¿Todavía necesito WOFF 1.0 en sitios web modernos?
No. Todos los navegadores modernos admiten WOFF2 de forma nativa. WOFF 1.0 solo es necesario si debes dar soporte a navegadores heredados obsoletos como Internet Explorer.