Web Open Font Format (.woff)

W3C Standard

Web Open Font Format (WOFF) je prva generacija otvorenog standardnog formata veb-fonta, koju je podržao W3C. On objedinjuje standardne TrueType ili OpenType fontove sa zlib kompresijom i XML metapodacima o licenciranju.

Pregled i metapodaci

Operativni sistemi i analizatori datoteka identifikuju WOFF datoteke proverom početnog binarnog niza bajtova:

Izaberite ili prevucite datoteke ovde

Privatno - datoteke nikada ne napuštaju vaš uređaj

ili nalepite Ctrl+V
Garancija privatnosti: bez prenosa podataka preko mreže 0 bajtova poslato spoljnim serverima. Sva obrada je izvršena lokalno u bezbednom okruženju vašeg pregledača.

Potpis zaglavlja na nivou bajtova (magični bajtovi)

Operativni sistemi i analizatori datoteka identifikuju WOFF datoteke proverom početnog binarnog niza bajtova:

HEKSADECIMALNI POTPIS (OFFSET 0):

77 4F 46 46

ASCII REPREZENTACIJA: wOFF

Standardizacija: W3C Recommendation (2012)

Tehničke specifikacije

Arhitektura kontejneraZaglavlje WOFF formata od 44 bajta, za kojim slede direktorijum tabela, podaci tabela komprimovani zlib algoritmom, opcioni prošireni metapodaci i privatni podaci
KompresijaDeflate (zlib) kompresija primenjena na svaku tabelu fonta zasebno
Bajtni redosled (Endianness)Veliko-endijanski zapis (SFNT standard)
Prostori bojaNasleđeno iz tabela fonta koje se nalazi unutar WOFF datoteke
Kanali i strukturaObrisi glifova TrueType formata („glyf“) ili PostScript formata („CFF “), metrike i tipografske funkcije
Maksimalne dimenzijeDo 65.535 glifova po datoteci fonta
TransparentnostNasleđeno iz formata fonta koji se nalazi unutar WOFF datoteke
Strimovanje i progresivno učitavanjeDekompresija tabela jednu po jednu omogućava strimovanje fonta tokom učitavanja

Tehnička matrica poređenja: WOFF u odnosu na konkurente

Tehnički atributWOFF (Trenutno)WOFF2TTFOTF
Kodirni algoritam kompresijeDeflate (zlib) po tabeliBrotli sa pretprocesiranjem tabelaNekompresovani SFNTNekompresovani SFNT
Magični potpiswOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Relativna veličina fajlaČesto manji od TTF-a; ušteda zavisi od fontaČesto manji od TTF-a; ušteda zavisi od fontaOsnovni standard (100%)Osnovni standard (100%)
Ciljno okruženjeStariji veb-pregledači (IE9+, Safari 5+)Podrška zavisi od pregledača.Desktop operativni sistemiDesktop izdavaštvo i štampa

Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak

Upozorenje u konzoli veb-pregledača: „Failed to decode downloaded font: OTS parsing error“.

Osnovni uzrok: Neslaganje sa deklarisanom dužinom nekompresovane tabele ili oštećen tok podataka zlib.

Oporavak: Ponovo kompresujte tabele fontova ili konvertujte font u WOFF2 pomoću File2File.app Font Converter.

Bezbednosna analiza i vektori napada parsera

Veb-pregledači analiziraju WOFF datoteke preuzete sa nepouzdanih veb-domena pomoću alatke OpenType Sanitizer (OTS) kako bi blokirali zlonamerni sadržaj za eksploataciju ranjivosti.

Poznati vektori napada

  • Čitanje izvan granica bafera tokom zlib dekompresije oštećenih delova tabele fonta.
  • Neusklađena polja dužine tabela koja izazivaju prepunjavanje memorijskog bafera na hipu u mehanizmima za iscrtavanje fontova.
  • Uskraćivanje usluge (DoS) usled iscrpljivanja memorije tokom širenja tabele fonta.

Najbolje prakse za zaštitu: Uvek sanitizujte preuzete WOFF datoteke pomoću OTS-a pre prosleđivanja mehanizmima za fontove operativnog sistema.

Istorijat i prekretnice

2018WOFF2 ga je nasledio kao poželjni standard za veb-fontove zahvaljujući efikasnijoj Brotli kompresiji.
2012W3C zvanično objavljuje WOFF 1.0 kao zvaničnu preporuku za web standard.
2009Henrik Rydgård, Tal Leming i Jonathan Kew specificiraju WOFF kako bi rešili probleme sa licenciranjem veb-fontova.

Ključne prednosti

  • Može da smanji veličinu datoteka veb-fontova u poređenju sa izvornim TTF ili OTF datotekama; stepen uštede zavisi od fonta i enkodera.
  • WOFF podržavaju mnogi pregledači, uključujući starije verzije; kompatibilnost zavisi od verzije pregledača i platforme.
  • Uključuje opcioni blok XML metapodataka o licenciranju fontova, navođenju autora i autorskim pravima tipografske livnice.

Tehnička ograničenja i nedostaci

  • U mnogim tokovima rada na vebu WOFF je zamenjen formatom WOFF2, koji koristi Brotli kompresiju i transformacije tabela fonta; ušteda prostora zavisi od fonta.
  • Ne može se direktno instalirati u desktop operativne sisteme (Windows/Mac) bez konverzije u TTF/OTF.
  • Stariji algoritam kompresije zlib manje je efikasan od savremenih entropijskih kodera.

Zanimljivosti

  • Magični bajtovi za WOFF 1.0 su 'wOFF' (0x77 0x4F 0x46 0x46), dok WOFF 2.0 koristi 'wOF2'.
  • Livnice tipografije su pristale da dozvole svoje fontove na vebu tek nakon što je WOFF kreiran, jer je njegov specijalizovani kontejner razlikovao web fontove od desktop fontova podložnih pirateriji.
  • WOFF je prvobitno primenjen u Firefox-u 3.6 2010. godine, pre nego što je postao zvanična preporuka W3C-a.

Često postavljana tehnička pitanja

Koja je razlika između WOFF i WOFF2?

WOFF koristi zlib kompresiju, dok WOFF2 koristi Brotli kompresiju i transformacije tabela fonta. Razlika u veličini datoteke zavisi od fonta i enkodera.

Kako mogu da konvertujem WOFF font u TTF ili OTF za desktop upotrebu?

Možete konvertovati WOFF fajlove u instalacione desktop TTF ili OTF fontove za nekoliko sekundi koristeći File2File.app direktno u Vašem veb-pretraživaču.

Da li mi je i dalje potreban WOFF 1.0 na modernim veb-sajtovima?

Trenutne glavne verzije pregledača podržavaju WOFF2. Rezervna WOFF datoteka i dalje može biti korisna za starije pregledače ili određena ugrađena okruženja.