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ů:

Vyberte nebo přetáhněte soubory sem

100% soukromá konverze v prohlížeči - soubory nikdy neopustí vaše zařízení

nebo vložte Ctrl+V
Záruka ochrany soukromí s nulovým přenosem po síti: 0 bajtů odesláno na externí servery. Veškeré zpracování probíhalo lokálně v sandboxu vašeho prohlížeče.

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 46

ASCII REPREZENTACE: wOFF

Standardizace: W3C Recommendation (2012)

Technické specifikace

Architektura kontejneru44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data
KompreseDeflate (zlib) compression applied to each individual font table
Endiantita bajtůBig-Endian (SFNT standard)
Barevné prostoryInherited from underlying font tables
Kanály a strukturaTrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features
Max. rozměryUp to 65,535 glyphs per font file
PrůhlednostInherited 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ý atributWOFF (Aktuální)WOFF2TTFOTF
Kompresní kodekDeflate (zlib) na tabulkuBrotli s předzpracováním tabulekNekomprimovaný SFNTNekomprimovaný SFNT
Magický podpiswOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Relativní velikost souboru~o 40 % menší než TTF~o 60 % menší než TTFZá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émyStolní 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

2018Nahrazeno formátem Wojis WOFF2 jako preferovaným standardem webových písem kvůli lepší kompresi Brotli.
2012Konsorcium W3C oficiálně publikuje WOFF 1.0 jako formální doporučení webového standardu.
2009Henrik Rydgård, Tal Leming a Jonathan Kew specifikují formát WOFF za účelem vyřešení problémů s licencováním webových písem.

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.