Web Open Font Format (.woff)

W3C Standard

Zapis Web Open Font Format (WOFF) je zgodovinski standard spletnih pisav prve generacije, ki ga podpira W3C in ovija standardne pisave TrueType ali OpenType s stiskanjem zlib in metapodatki o licenciranju XML.

Pregled in metapodatki

Operacijski sistemi in analizatorji datotek identificirajo datoteke WOFF s pregledom vodilnega binarnega zaporedja bajtov:

Izberite ali povlecite datoteke sem

100-odstotno zasebna pretvorba v brskalniku - datoteke nikoli ne zapustijo vaše naprave

ali prilepi Ctrl+V
Jamstvo o zasebnosti brez prenosa podatkov v omrežje: 0 bajtov naloženih na zunanje strežnike. Vsa obdelava je potekala lokalno v varnem območju vašega brskalnika.

Podpis glave na ravni bajtov (Čarobni bajti)

Operacijski sistemi in analizatorji datotek identificirajo datoteke WOFF s pregledom vodilnega binarnega zaporedja bajtov:

PODPIS HEX (ZAMIK 0):

77 4F 46 46

REPREZENTACIJA ASCII: wOFF

Standardizacija: W3C Recommendation (2012)

Tehnične specifikacije

Arhitektura vsebnika44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data
StiskanjeDeflate (zlib) compression applied to each individual font table
Vrstni red bajtovBig-Endian (SFNT standard)
Barvni prostoriInherited from underlying font tables
Kanali in strukturaTrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features
Največje dimenzijeUp to 65,535 glyphs per font file
ProsojnostInherited from underlying font format
Pretočno in progresivno predvajanjeTable-by-table decompression enables streaming font loading

Tehnična primerjalna matrika: WOFF proti konkurenci

Tehnični atributWOFF (Trenutno)WOFF2TTFOTF
Kodek za stiskanjeDeflate (zlib) na tabeloBrotli s predobdelavo tabeleNestisnjen SFNTNestisnjen SFNT
Magijski podpiswOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Relativna velikost datoteke~40 % manjši kot TTF~60 % manjši kot TTFOsnovni standard (100 %)Osnovni standard (100 %)
Ciljno okoljeStari spletni brskalniki (IE9+, Safari 5+)Sodobni spletni brskalniki (univerzalno)Namizni operacijski sistemiNamizno založništvo in tisk

Pogosti načini okvar in vodič za heksadecimalno obnovo

Opozorilo v konzoli brskalnika: 'Failed to decode downloaded font: OTS parsing error'.

Glavni vzrok: Neujemajoča se deklarirana dolžina nestisnjene tabele ali poškodovan pretok zlib.

Sanacija: Ponovno stisnite tabele pisav ali jih pretvorite v WOFF2 z uporabo pretvornika pisav File2File.

Varnostna analiza in napadalni vektorji razčlenjevalnika

Spletni brskalniki razčlenjujejo datoteke WOFF, prenesene iz nezaupanljivih spletnih domen z uporabo sanitizerja OpenType (OTS), da bi blokirali zlonamerne kode.

Znani vektorji napada

  • Prekomerno branje medpomnilnika med stiskanjem zlib za poškodovane dele tabel pisav.
  • Neujemajoča se polja dolžine tabel, ki sprožijo prelivanje medpomnilnika v pomnilniku (heap buffer overflow) v upodabljalnikih pisav.
  • Zavrnitev storitve zaradi izčrpavanja pomnilnika med širjenjem tabele pisav.

Obrambne najboljše prakse:

Zgodovinski izvor in mejniki

2018Zaradi vrhunskega stiskanja Brotli ga je WOFF2 nasledil kot prednostni standard spletnih pisav.
2012W3C uradno objavi WOFF 1.0 kot formalno priporočilo spletnega standarda.
2009Henrik Rydgård, Tal Leming in Jonathan Kew določijo WOFF za rešitev vprašanj glede licenciranja spletnih pisav.

Ključne prednosti

  • Zmanjša velikost datotek spletnih pisav za 30 % do 50 % v primerjavi z neobdelanimi nestisnjenimi datotekami TTF ali OTF.
  • Univerzalna povratna združljivost v vseh namiznih in mobilnih spletnih brskalnikih, izdanih po letu 2011.
  • Vključuje izbirni blok metapodatkov XML za licenciranje pisav, avtorske zasluge in podatke o avtorskih pravicah livarne.

Tehnične omejitve in slabosti

  • Nadomeščen z WOFF2, ki stisne približno 30 % manjše datoteke z uporabo algoritma Brotli.
  • Ni ga mogoče namestiti neposredno v namizne operacijske sisteme (Windows/Mac) brez pretvorbe v TTF/OTF.
  • Starejši algoritem stiskanja zlib je manj učinkovit kot sodobni kodirniki entropije.

Zanimive tehnične malenkosti

  • Magijska števila za WOFF 1.0 so 'wOFF' (0x77 0x4F 0x46 0x46), medtem ko WOFF 2.0 uporablja 'wOF2'.
  • Livarna tipov se je strinjala, da dovoli svoje pisave na spletu šele po ustvarjanju WOFF, ker je njegov specializiran vsebnik ločil spletne pisave od namiznih pisav, ki jih je mogoče piratizirati.
  • WOFF je bil prvotno uveden v brskalniku Firefox 3.6 leta 2010, preden je postal uradno priporočilo W3C.

Pogosta tehnična vprašanja

Kakšna je razlika med WOFF in WOFF2?

WOFF uporablja stiskanje zlib, medtem ko WOFF2 uporablja Googlov novejši algoritem Brotli in tablične preoblikovalnike (table transforms), kar daje datoteke, ki so približno 30 % manjše od WOFF.

Kako lahko pretvorim pisavo WOFF v TTF ali OTF za namizno uporabo?

Datoteke WOFF lahko v nekaj sekundah pretvorite v namizne pisave TTF ali OTF, primerne za namestitev, z uporabo File2File.app neposredno v vašem spletnem brskalniku.

Ali na sodobnih spletnih mestih še vedno potrebujem WOFF 1.0?

Ne. Vsi sodobni brskalniki izvorno podpirajo WOFF2. WOFF 1.0 je potreben samo, če morate podpirati zastarele brskalnike, kot je Internet Explorer.