Web Open Font Format (.woff)
W3C StandardnoWeb 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:
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 46ASCII REPREZENTACIJA: wOFF
Standardizacija: W3C Recommendation (2012)
Tehničke specifikacije
| Arhitektura kontejnera | 44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data |
| Kompresija | Deflate (zlib) compression applied to each individual font table |
| Bajtni redosled (Endianness) | Big-Endian (SFNT standard) |
| Prostori boja | Inherited from underlying font tables |
| Kanali i struktura | TrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features |
| Maksimalne dimenzije | Up to 65,535 glyphs per font file |
| Transparentnost | Inherited from underlying font format |
| Strimovanje i progresivno učitavanje | Table-by-table decompression enables streaming font loading |
Tehnička matrica poređenja: WOFF vs Konkurenti
| Tehnički atribut | WOFF (Trenutno) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Kodirni algoritam kompresije | Deflate (zlib) po tabeli | Brotli sa pretprocesiranjem tabela | Nekompresovani SFNT | Nekompresovani SFNT |
| Magični potpis | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Relativna veličina fajla | ~40% manji od TTF-a | ~60% manji od TTF-a | Osnovni standard (100%) | Osnovni standard (100%) |
| Ciljno okruženje | Stariji web pretraživači (IE9+, Safari 5+) | Moderni web pretraživači (Univerzalno) | Desktop operativni sistemi | Desktop 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
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.