Web Open Font Format (.woff)
W3C StandardníWeb Open Font Format (WOFF) je historický open-source standard formátu webových písem první generace podpořený konsorciem W3C. Balí standardní písma typu TrueType nebo OpenType pomocí komprese zlib a metadat licencování ve formátu XML.
Zkontrolovat a metadata
Operační systémy a analyzátory souborů identifikují soubory WOFF kontrolou počáteční binární sekvence bajtů:
Podpis hlavičky na úrovni bajtů (Magic Bytes)
Operační systémy a analyzátory souborů identifikují soubory WOFF kontrolou počáteční binární sekvence bajtů:
HEXADECIMÁLNÍ PODPIS (OFFSET 0):
77 4F 46 46ASCII REPREZENTACE: wOFF
Standardizace: W3C Recommendation (2012)
Technické specifikace
| Architektura kontejneru | 44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data |
| Komprese | Deflate (zlib) compression applied to each individual font table |
| Endiantita bajtů | Big-Endian (SFNT standard) |
| Barevné prostory | Inherited from underlying font tables |
| Kanály a struktura | TrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features |
| Max. rozměry | Up to 65,535 glyphs per font file |
| Průhlednost | Inherited from underlying font format |
| Streamování a progresivní načítání | Table-by-table decompression enables streaming font loading |
Technická srovnávací matice: WOFF vs konkurence
| Technický atribut | WOFF (Aktuální) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Kompresní kodek | Deflate (zlib) na tabulku | Brotli s předzpracováním tabulek | Nekomprimovaný SFNT | Nekomprimovaný SFNT |
| Magický podpis | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Relativní velikost souboru | ~o 40 % menší než TTF | ~o 60 % menší než TTF | Základní standard (100 %) | Základní standard (100 %) |
| Cílové prostředí | Starší webové prohlížeče (IE9+, Safari 5+) | Moderní webové prohlížeče (univerzální) | Desktopové operační systémy | Stolní publikační činnost a tisk |
Běžné režimy poškození a příručka pro obnovení v hex
Varování v konzoli prohlížeče: „Failed to decode downloaded font: OTS parsing error".
Hlavní příčina: Neshoda v deklarované délce nekomprimované tabulky nebo poškozený proud zlib.
Obnovení: Znovu zkomprimujte tabulky písem nebo je převeďte do formátu WOFF2 pomocí převaděče písem File2File.
Bezpečnostní analýza a vektory útoků na parser
Webové prohlížeče analyzují soubory WOFF stažené z nedůvěryhodných webových domén pomocí nástroje OpenType Sanitizer (OTS), aby zablokovaly exploity.
Známé vektory útoků
- Nadměrné čtení vyrovnávací paměti během dekomprese zlib u poškozených bloků tabulky písem.
- Pole nesprávné délky tabulky spouštějící přetečení haldy (heap buffer overflow) v rendererech písem.
- Odtržení od služby (DoS) prostřednictvím vyčerpání paměti během rozšiřování tabulky písem.
Doporučené bezpečnostní postupy:
Historický vývoj a milníky
Klíčové výhody a přednosti
- Snižuje velikost souborů webových písem o 30 % až 50 % ve srovnání se surovými nekomprimovanými soubory TTF nebo OTF.
- Univerzální zpětná kompatibilita se všemi desktopovými i mobilními webovými prohlížeči vydanými od roku 2011.
- Zahrnuje volitelný blok metadat XML pro licencování písem, zásluhy autorů a informace o autorských právech sléváren.
Technická omezení a nevýhody
- Nahrazeno formátem WOFF2, který komprimuje zhruba o 30 % menší velikost pomocí algoritmu Brotli.
- Nelze jej přímo nainstalovat do desktopových operačních systémů (Windows/Mac) bez převodu na TTF/OTF.
- Starší kompresní algoritmus zlib je méně účinný než moderní enkodéry entropie.
Zajímavé technické drobnosti
- Magické bajty pro WOFF 1.0 jsou „wOFF" (0x77 0x4F 0x46 0x46), zatímco WOFF 2.0 používá „wOF2".
- Písmové slévárny souhlasily s povolením svých písem na webu až po vytvoření formátu WOFF, protože jeho specializovaný kontejner odlišoval webová písma od zcizitelných desktopových písem.
- Formát WOFF byl původně implementován ve Firefoxu 3.6 v roce 2010, než se stal oficiálním doporučením W3C.
Často kladené technické otázky
Jaký je rozdíl mezi formáty WOFF a WOFF2?
WOFF využívá kompresi zlib, zatímco WOFF2 používá novější algoritmus Brotli od Google a transformace tabulek, což vede k souborům, které jsou zhruba o 30 % menší než WOFF.
Jak mohu převést písmo WOFF na TTF nebo OTF pro použití v počítači?
Soubory WOFF můžete během několika sekund převést na instalovatelná desktopová písma TTF nebo OTF pomocí aplikace File2File.app přímo ve vašem webovém prohlížeči.
Potřebuji ještě WOFF 1.0 na moderních webech?
Ne. Všechny moderní prohlížeče podporují WOFF2 nativně. WOFF 1.0 je potřeba pouze v případě, že musíte podporovat zastaralé staré prohlížeče, jako je Internet Explorer.