Web Open Font Format (.woff)
W3C-Empfehlung StandardWeb Open Font Format (WOFF) ist das historische Web-Font-Format der ersten Generation als offener Standard, das vom W3C empfohlen wird. Es verpackt Standard-TrueType- oder OpenType-Fonts mit zlib-Komprimierung und XML-Lizenzierungsmetadaten.
Untersuchen & Metadaten
Betriebssysteme und Dateianalyseprogramme identifizieren WOFF-Dateien anhand der führenden binären Bytefolge:
Headersignatur auf Byte-Ebene (Magic Bytes)
Betriebssysteme und Dateianalyseprogramme identifizieren WOFF-Dateien anhand der führenden binären Bytefolge:
HEX-SIGNATUR (OFFSET 0):
77 4F 46 46ASCII-DARSTELLUNG: wOFF
Standardisierung: W3C-Empfehlung (2012)
Technische Daten
| Container-Architektur | 44-Byte-WOFF-Header, gefolgt von Tabellenverzeichnis, zlib-komprimierten Tabellendaten, optionalen erweiterten Metadaten und privaten Daten |
| Kompression | Deflate- (zlib-) Komprimierung, angewendet auf jede einzelne Font-Tabelle |
| Byte-Reihenfolge | Big-Endian (SFNT-Standard) |
| Farbräume | Aus den zugrunde liegenden Font-Tabellen übernommen |
| Kanäle und Struktur | TrueType- ('glyf') oder PostScript- ('CFF ') Glyphenumrisse, Metriken und typografische Merkmale |
| Max. Abmessungen | Bis zu 65.535 Glyphen pro Font-Datei |
| Transparenz | Aus dem zugrunde liegenden Font-Format übernommen |
| Streaming und progressive Darstellung | Tabellenbasierte Dekomprimierung ermöglicht das Streaming beim Laden von Schriftarten |
Technische Vergleichsmatrix: WOFF und Konkurrenzformate
| Technisches Attribut | WOFF (Aktuelles Format) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Komprimierungs-Codec | Deflate (zlib) pro Tabelle | Brotli mit Tabellen-Vorverarbeitung | Unkomprimiertes SFNT | Unkomprimiertes SFNT |
| Magic-Signatur | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Relative Dateigröße | ~40% kleiner als TTF | ~60% kleiner als TTF | Basisstandard (100%) | Basisstandard (100%) |
| Zielumgebung | Ältere Webbrowser (IE9+, Safari 5+) | Die Unterstützung variiert je nach Browser. | Desktop-Betriebssysteme | Desktop-Publishing & Druck |
Häufige Datenbeschädigungen und Leitfaden zur Wiederherstellung anhand von Hex-Daten
Browser-Konsolenwarnung: 'Failed to decode downloaded font: OTS parsing error'.
Ursache: Fehlanpassung der deklarierten unkomprimierten Tabellenlänge oder beschädigter zlib-Datenstrom.
Wiederherstellung: Font-Tabellen neu komprimieren oder mit dem File2File.app Font Converter in WOFF2 konvertieren.
Sicherheitsanalyse und Angriffsvektoren für Parser
Webbrowser parsen WOFF-Dateien, die von nicht vertrauenswürdigen Webdomains heruntergeladen wurden, mithilfe des OpenType Sanitizer (OTS), um Exploit-Nutzdaten zu blockieren.
Bekannte Angriffsvektoren
- Pufferüberlesung (Buffer Over-read) während der zlib-Dekomprimierung beschädigter Font-Tabellen-Chunks.
- Nicht übereinstimmende Tabellenlängenfelder, die Heap-Pufferüberläufe in Font-Renderern auslösen.
- Denial of Service durch Speichererschöpfung während der Font-Tabellen-Expansion.
Empfohlene Schutzmaßnahmen: Heruntergeladene WOFF-Dateien vor der Übergabe an Betriebssystem-Font-Engines immer mit OTS bereinigen.
Historische Ursprünge & Meilensteine
Hauptvorteile & Stärken
- Kann Webfont-Dateien gegenüber rohen TTF- oder OTF-Dateien verkleinern; die Einsparung hängt von der Schrift und dem Encoder ab.
- Mit allen seit 2011 veröffentlichten Desktop- und mobilen Webbrowsern abwärtskompatibel.
- Enthält einen optionalen XML-Metadatenblock mit Angaben zur Schriftlizenz, zu den Autoren und zum Copyright der Schriftgießerei.
Technische Einschränkungen & Nachteile
- In vielen Web-Workflows wird WOFF zunehmend durch WOFF2 ersetzt. WOFF2 nutzt Brotli-Komprimierung und Schrift-Tabellentransformationen; die Einsparung bei der Dateigröße variiert.
- Kann ohne Konvertierung in TTF/OTF nicht direkt auf Desktop-Betriebssystemen (Windows/Mac) installiert werden.
- Älterer zlib-Komprimierungsalgorithmus ist weniger effizient als moderne Entropie-Kodierer.
Interessante technische Fakten
- Die Magic Bytes für WOFF 1.0 sind 'wOFF' (0x77 0x4F 0x46 0x46), während WOFF 2.0 'wOF2' verwendet.
- Schriftgießereien stimmten der Verwendung ihrer Schriften im Web erst zu, nachdem WOFF eingeführt worden war: Der spezielle Container unterschied Webfonts von illegal kopierten Desktop-Schriften.
- WOFF wurde ursprünglich 2010 in Firefox 3.6 implementiert, bevor es eine offizielle W3C-Empfehlung wurde.
Häufig gestellte technische Fragen
Was ist der Unterschied zwischen WOFF und WOFF2?
WOFF verwendet die zlib-Komprimierung, während WOFF2 den neueren Brotli-Algorithmus von Google und Tabellentransformationen nutzt, was zu Dateien führt, die etwa 30 % kleiner sind als WOFF.
Wie kann ich einen WOFF-Font für die Desktop-Nutzung in TTF oder OTF konvertieren?
Sie können WOFF-Dateien direkt in Ihrem Webbrowser mit File2File.app in Sekundenschnelle in installierbare Desktop-TTF- oder OTF-Fonts konvertieren.
Benötige ich auf modernen Websites noch WOFF 1.0?
Nein. Alle modernen Browser unterstützen WOFF2 nativ. WOFF 1.0 wird nur dann benötigt, wenn Sie veraltete Legacy-Browser wie Internet Explorer unterstützen müssen.