Format de police web ouverte (.woff)

Recommandation Standard

Web Open Font Format (WOFF) est le premier format de police web ouvert standard de première génération, approuvé par le W3C, qui enveloppe des polices standard TrueType ou OpenType avec une compression zlib et des métadonnées de licence XML.

Inspecter et métadonnées

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers WOFF en inspectant la séquence d'octets binaires de tête :

Sélectionnez ou déposez des fichiers ici

Conversion 100 % privée dans le navigateur - les fichiers ne quittent jamais votre appareil

ou coller Ctrl+V
Garantie de confidentialité sans transmission réseau : 0 octet téléchargé vers des serveurs externes. Tout le traitement a lieu localement dans le bac à sable de votre navigateur.

Signature d'en-tête au niveau des octets (Magic Bytes)

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers WOFF en inspectant la séquence d'octets binaires de tête :

SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :

77 4F 46 46

REPRÉSENTATION ASCII : wOFF

Normalisation : Recommandation du W3C (2012)

Spécifications techniques

Architecture de conteneurEn-tête WOFF de 44 octets suivi d'un répertoire de tables, de données de tables compressées avec zlib, de métadonnées étendues optionnelles et de données privées
CompressionCompression Deflate (zlib) appliquée à chaque table de police individuelle
Boutisme des octetsBout-de-Poids-Fort (standard SFNT)
Espaces colorimétriquesHérité des tables de polices sous-jacentes
Canaux et structureContours de glyphes TrueType ('glyf') ou PostScript ('CFF '), métriques et fonctionnalités typographiques
Dimensions maximalesJusqu'à 65 535 glyphes par fichier de police
TransparenceHérité du format de police sous-jacent
Streaming et progressifLa décompression table par table permet le chargement de polices en flux continu

Matrice de comparaison technique : WOFF vs Concurrents

Attribut techniqueWOFF (Actuel)WOFF2TTFOTF
Codec de compressionDeflate (zlib) par tableBrotli avec prétraitement de tablesSFNT non compresséSFNT non compressé
Signature magiquewOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Taille de fichier relative~40 % plus petit que TTF~60 % plus petit que TTFStandard de référence (100 %)Standard de référence (100 %)
Environnement cibleNavigateurs web obsolètes (IE9+, Safari 5+)Navigateurs web modernes (universel)Systèmes d'exploitation de bureauPublication assistée par ordinateur et impression

Modes de corruption courants et guide de récupération hexadécimale

Avertissement dans la console du navigateur : 'Failed to decode downloaded font: OTS parsing error'.

Cause racine: Inadéquation de la longueur de table non compressée déclarée ou flux zlib endommagé.

Récupération: Recompresser les tables de polices ou convertir en WOFF2 à l'aide du convertisseur de polices File2File.

Analyse de sécurité et vecteurs d'attaque de l'analyseur

Les navigateurs web analysent les fichiers WOFF téléchargés à partir de domaines web non sécurisés à l'aide de l'outil OpenType Sanitizer (OTS) pour bloquer les charges utiles d'exploitation.

Vecteurs d'attaque connus

  • Surlecture de tampon lors de la décompression zlib de morceaux de tables de polices corrompus.
  • Champs de longueur de table incompatibles déclenchant des dépassements de tampon de tas dans les moteurs de rendu de polices.
  • Déni de service par épuisement de la mémoire lors de l'expansion des tables de polices.

Bonnes pratiques de défense: Assainissez toujours les fichiers WOFF téléchargés avec OTS avant de les transmettre aux moteurs de polices du système d'exploitation.

Origines historiques et jalons

2018Remplacé par WOFF2 en tant que standard de police web privilégié en raison de sa compression Brotli supérieure.
2012Le W3C publie officiellement WOFF 1.0 en tant que Recommandation de Standard Web formelle.
2009Henrik Rydgård, Tal Leming et Jonathan Kew spécifient WOFF pour résoudre les problèmes de licence des polices web.

Principaux avantages

  • Réduit la taille des fichiers de polices web de 30 % à 50 % par rapport aux fichiers TTF ou OTF bruts non compressés.
  • Rétrocompatibilité universelle sur tous les navigateurs web de bureau et mobiles sortis depuis 2011.
  • Comprend un bloc de métadonnées XML optionnel pour les licences de polices, les crédits des auteurs et les informations de copyright de la fonderie.

Limites techniques

  • Supplanté par WOFF2, qui compresse environ 30 % plus petit grâce à l'algorithme Brotli.
  • Ne peut pas être installé directement sur les systèmes d'exploitation de bureau (Windows/Mac) sans conversion préalable en TTF/OTF.
  • L'ancien algorithme de compression zlib est moins efficace que les codeurs d'entropie modernes.

Anecdotes techniques

  • Les octets magiques de WOFF 1.0 sont 'wOFF' (0x77 0x4F 0x46 0x46), tandis que WOFF 2.0 utilise 'wOF2'.
  • Les fonderies typographiques ont accepté d'autoriser leurs polices sur le web seulement après la création de WOFF, car son conteneur spécialisé distinguait les polices web des polices de bureau piratables.
  • WOFF a été initialement implémenté dans Firefox 3.6 en 2010 avant de devenir une recommandation officielle du W3C.

Foire aux questions techniques

Quelle est la différence entre WOFF et WOFF2 ?

WOFF utilise la compression zlib, tandis que WOFF2 utilise le nouvel algorithme Brotli de Google et des transformations de tables, ce qui donne des fichiers environ 30 % plus petits que WOFF.

Comment puis-je convertir une police WOFF en TTF ou OTF pour une utilisation sur bureau ?

Vous pouvez convertir des fichiers WOFF en polices de bureau installables TTF ou OTF en quelques secondes à l'aide de File2File.app directement dans votre navigateur web.

Ai-je encore besoin de WOFF 1.0 sur les sites web modernes ?

Non. Tous les navigateurs modernes prennent en charge WOFF2 de manière native. WOFF 1.0 n'est nécessaire que si vous devez prendre en charge des navigateurs obsolètes comme Internet Explorer.