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.

Kontrola 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

Soukromě - 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 (POSUN 0):

77 4F 46 46

ASCII REPREZENTACE: wOFF

Standardizace: W3C Recommendation (2012)

Technické specifikace

Architektura kontejneru44bajtová hlavička WOFF, za níž následuje adresář tabulek, data tabulek komprimovaná zlibem a volitelná rozšířená metadata a soukromá data
KompreseKomprese Deflate (zlib) aplikovaná na každou jednotlivou tabulku písma
Pořadí bajtůBig-endian (standard SFNT)
Barevné prostoryPřevzato z podkladových tabulek písma
Kanály a strukturaObrysy glyfů TrueType („glyf“) nebo PostScript („CFF “), metriky a typografické funkce
Max. rozměryAž 65 535 glyfů v jednom souboru písma
PrůhlednostPřevzato z podkladového formátu písma
Streamování a progresivní načítáníDekomprese po jednotlivých tabulkách umožňuje průběžné načítání písma

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Často menší než TTF; úspora závisí na písmuČasto menší než TTF; úspora závisí na písmuZákladní standard (100 %)Základní standard (100 %)
Cílové prostředíStarší webové prohlížeče (IE9+, Safari 5+)Podpora se liší podle prohlížeče.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.app.

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.
  • Odepření 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: Stažené soubory WOFF vždy před předáním fontovým enginům operačního systému sanitujte pomocí OTS.

Historický vývoj a milníky

2018Nahrazeno formátem 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

  • Komprese WOFF může zmenšit soubor s fontem; dosažená úspora závisí na písmu a použitém kodéru.
  • WOFF podporuje mnoho prohlížečů; podpora závisí na platformě a verzi.
  • 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

  • V mnoha pracovních postupech WOFF2 nahradil WOFF. WOFF2 používá Brotli a transformace tabulek, přičemž dosažená úspora závisí na písmu.
  • 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 snadno pirátitelných písem pro počítače.
  • 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 používá kompresi zlib, zatímco WOFF2 používá kompresi Brotli a transformace tabulek písma. Výsledný rozdíl ve velikosti souboru závisí na písmu a kodéru.

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.