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 Dateianalysatoren identifizieren WOFF-Dateien durch Untersuchung der führenden binären Byte-Sequenz:
Byte-basierte Headersignatur (Magic Bytes)
Betriebssysteme und Dateianalysatoren identifizieren WOFF-Dateien durch Untersuchung der führenden binären Byte-Sequenz:
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-Endianness | Big-Endian (SFNT-Standard) |
| Farbräume | Aus den zugrunde liegenden Font-Tabellen übernommen |
| Kanäle & 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 & Progressiv | Tabellenbasierte Dekomprimierung ermöglicht das Streaming von Font-Ladevorgängen |
Technischer Vergleich: WOFF im Vergleich zu Wettbewerbern
| Technisches Attribut | WOFF (Aktuell) | 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+) | Moderne Webbrowser (universell) | Desktop-Betriebssysteme | Desktop-Publishing & Druck |
Häufige Korruptionsarten & Hex-Wiederherstellungsleitfaden
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 Font Converter in WOFF2 konvertieren.
Sicherheitsanalyse & Parser-Angriffsvektore
Webbrowser parsen WOFF-Dateien, die von nicht vertrauenswürdigen Webdomains heruntergeladen wurden, mithilfe des OpenType Sanitizer (OTS), um Exploit-Nutzdaten zu blockieren.
Bekannte Angriffsvektore
- 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.
Bewährte Sicherheitsverfahren: Heruntergeladene WOFF-Dateien vor der Übergabe an Betriebssystem-Font-Engines immer mit OTS bereinigen.
Historische Ursprünge & Meilensteine
Hauptvorteile & Stärken
- Reduziert Web-Font-Dateigrößen im Vergleich zu unkomprimierten Rohtext-TTF- oder OTF-Dateien um 30 % bis 50 %.
- Universelle Abwärtskompatibilität über jeden seit 2011 veröffentlichten Desktop- und Mobil-Webbrowser hinweg.
- Enthält einen optionalen XML-Metadatenblock für Font-Lizenzierung, Autorencredits und Gießerei-Copyright-Informationen.
Technische Einschränkungen & Nachteile
- Von WOFF2 abgelöst, das mit dem Brotli-Algorithmus etwa 30 % kleiner komprimiert.
- 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 Wissenswertes
- 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 Fonts im Web erst zu, nachdem WOFF erstellt wurde, da sein spezieller Container Web-Fonts von raubmordkopierbaren Desktop-Fonts unterschied.
- 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.