Web Open Font Format (.woff)

W3C Standardno

Web Open Font Format (WOFF) je istorijski web font format otvorenog standarda prve generacije koji je odobrio W3C, a koji pakuje standardne TrueType ili OpenType fontove sa zlib kompresijom i XML metapodacima o licenciranju.

Pregledaj i metapodaci

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

Изаберите или превуците датотеке овде

100% приватна конверзија у прегледачу – датотеке никада не напуштају ваш уређај

или налепите Ctrl+V
100% Локална обрада у прегледачу 0 бајтова послато спољним серверима. Сва обрада је извршена локално у безбедном окружењу вашег прегледача.

Potpis zaglavlja na nivou bajtova (Magic Bytes)

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

HEX POTPIS (OFFSET 0):

77 4F 46 46

ASCII REPREZENTACIJA: wOFF

Standardizacija: W3C Recommendation (2012)

Tehničke specifikacije

Arhitektura kontejnera44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data
KompresijaDeflate (zlib) compression applied to each individual font table
Bajtni redosled (Endianness)Big-Endian (SFNT standard)
Prostori bojaInherited from underlying font tables
Kanali i strukturaTrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features
Maksimalne dimenzijeUp to 65,535 glyphs per font file
TransparentnostInherited from underlying font format
Strimovanje i progresivno učitavanjeTable-by-table decompression enables streaming font loading

Tehnička matrica poređenja: WOFF vs Konkurenti

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~40% manji od TTF-a~60% manji od TTF-aOsnovni standard (100%)Osnovni standard (100%)
Ciljno okruženjeStariji web pretraživači (IE9+, Safari 5+)Moderni web pretraživači (Univerzalno)Desktop operativni sistemiDesktop izdavaštvo i štampa

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

Upozorenje u konzoli pretraživača: 'Failed to decode downloaded font: OTS parsing error'.

Osnovni uzrok: Nepodudaranje u deklarisanoj dužini nekompresovane tabele ili oštećen zlib tok podataka.

Oporavak: Ponovo kompresujte tabele fontova ili konvertujte u WOFF2 koristeći File2File Font Converter.

Bezbednosna analiza i vektori napada parsera

Web pretraživači parsiraju WOFF fajlove preuzete sa nepouzdanih web domena koristeći OpenType Sanitizer (OTS) da bi blokirali zlonamerne napade.

Poznati vektori napada

  • Prekoračenje bafera (over-read) tokom zlib dekompresije oštećenih delova tabele fonta.
  • Nepodudarna polja dužine tabela koja pokreću prekomernu upotrebu memorije (heap buffer overflow) u rendererima fontova.
  • Uskraćivanje usluge (DoS) usled iscrpljivanja memorije tokom širenja tabele fonta.

Defanzivne najbolje prakse:

Istorijat i prekretnice

2018WOFF2 ga nasleđuje kao preferirani standard za web fontove zbog superiorne Brotli kompresije.
2012W3C zvanično objavljuje WOFF 1.0 kao zvaničnu preporuku za web standard.
2009Henrik Rydgård, Tal Leming i Jonathan Kew definišu WOFF kako bi rešili probleme sa licenciranjem web fontova.

Ključne prednosti

  • Smanjuje veličinu fajlova web fontova za 30% do 50% u poređenju sa sirovim nekompresovanim TTF ili OTF fajlovima.
  • Univerzalna povratna kompatibilnost sa svakim desktop i mobilnim web pretraživačem objavljenim od 2011. godine.
  • Uključuje opcioni blok XML metapodataka za licenciranje fontova, zasluge autora i informacije o autorskim pravima livnice.

Tehnička ograničenja i nedostaci

  • Zamenjen sa WOFF2, koji kompresuje otprilike 30% efikasnije koristeći Brotli algoritam.
  • Ne može se direktno instalirati u desktop operativne sisteme (Windows/Mac) bez konverzije u TTF/OTF.
  • Stariji zlib algoritam kompresije je manje efikasan od modernih kodera entropije.

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 originalno implementiran u Firefoxu 3.6 2010. godine pre nego što je postao zvanična W3C preporuka.

Često postavljana tehnička pitanja

Koja je razlika između WOFF i WOFF2?

WOFF koristi zlib kompresiju, dok WOFF2 koristi Google-ov noviji Brotli algoritam i transformacije tabela, što rezultira fajlovima koji su otprilike 30% manji od WOFF-a.

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?

Ne. Svi moderni pretraživači nativno podržavaju WOFF2. WOFF 1.0 je potreban samo ako morate da podržavate zastarele pretraživače poput Internet Explorera.