Web Open Font Format (.woff)
W3C StandardnoWeb Open Font Format (WOFF) povijesni je otvoreni standard web fontova prve generacije koji je odobrio W3C, a koji pakira standardne TrueType ili OpenType fontove uz zlib kompresiju i XML metapodatke o licenciranju.
Pregledaj i metapodaci
Operativni sustavi i alati za analizu datoteka identificiraju WOFF datoteke provjerom početnog niza binarnih bajtova:
Potpis zaglavlja na razini bajtova (Magic Bytes)
Operativni sustavi i alati za analizu datoteka identificiraju WOFF datoteke provjerom početnog niza binarnih bajtova:
HEX POTPIS (POMAK 0):
77 4F 46 46ASCII PRIKAZ: wOFF
Standardizacija: W3C Recommendation (2012)
Tehničke specifikacije
| Arhitektura spremnika | 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 |
| 字节序 | 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 |
| Prozirnost | Inherited from underlying font format |
| Streaming i progresivno | Table-by-table decompression enables streaming font loading |
Tehnička matrica usporedbe: WOFF vs Konkurencija
| Tehnički atribut | WOFF (Trenutno) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Algoritam kompresije | Deflate (zlib) po tablici | Brotli s pretobradom tablica | Nekomprimirani SFNT | Nekomprimirani 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 datoteke | ~40% manja od TTF-a | ~60% manja od TTF-a | Osnovni standard (100%) | Osnovni standard (100%) |
| Ciljno okruženje | Zastarjeli web preglednici (IE9+, Safari 5+) | Moderni web preglednici (univerzalno) | Stolni operativni sustavi | Stolno izdavaštvo i tisak |
Uobičajeni načini oštećenja i vodič za heksadecimalni oporavak
Upozorenje u konzoli preglednika: 'Failed to decode downloaded font: OTS parsing error'.
Temeljni uzrok: Nepodudaranje u deklariranoj duljini nekomprimirane tablice ili oštećen zlib tok.
Oporavak: Ponovno komprimirajte tablice fontova ili pretvorite u WOFF2 pomoću alata File2File Font Converter.
Sigurnosna analiza i vektori napada na parser
Web preglednici analiziraju WOFF datoteke preuzete s nepouzdanih web domena pomoću alata OpenType Sanitizer (OTS) kako bi blokirali zlonamjerne podatke.
Poznati vektori napada
- Pretjerano čitanje međuspremnika tijekom zlib dekompresije oštećenih dijelova tablice fonta.
- Nepodudarna polja duljine tablice koja uzrokuju prekoračenje međuspremnika gomile u ispisivačima fontova.
- Uskkraćivanje usluge iscrpljivanjem memorije tijekom proširivanja tablice fontova.
Najbolje obrambene prakse:
Povijesni izvori i prekretnice
Ključne prednosti
- Smanjuje veličinu datoteka web fontova za 30% do 50% u usporedbi s nekomprimiranim sirovim TTF ili OTF datotekama.
- Univerzalna povratna kompatibilnost na svakom stolnom i mobilnom web pregledniku izdanom od 2011. godine.
- Uključuje opcionalni blok XML metapodataka za licenciranje fontova, zasluge autora i informacije o autorskim pravima ljevaonice.
Tehnička ograničenja i nedostaci
- Zamijenjen formatom WOFF2, koji komprimira otprilike 30% bolje koristeći Brotli algoritam.
- Ne može se izravno instalirati u stolne operativne sustave (Windows/Mac) bez pretvorbe u TTF/OTF.
- Stariji zlib algoritam kompresije manje je učinkovit od modernih kodera entropije.
Zanimljive tehničke činjenice
- Magični bajtovi za WOFF 1.0 su 'wOFF' (0x77 0x4F 0x46 0x46), dok WOFF 2.0 koristi 'wOF2'.
- Ljevaonice slova pristale su dopustiti svoje fontove na webu tek nakon što je stvoren WOFF, jer je njegov specijalizirani spremnik razlikovao web fontove od stolnih fontova podložnih piratstvu.
- WOFF je izvorno implementiran u Firefoxu 3.6 2010. godine prije nego što je postao službena W3C preporuka.
Često postavljana tehnička pitanja
Koja je razlika između WOFF-a i WOFF2?
WOFF koristi zlib kompresiju, dok WOFF2 koristi Googleov noviji algoritam Brotli i transformacije tablica, što rezultira datotekama koje su otprilike 30% manje od WOFF-a.
Kako mogu pretvoriti WOFF font u TTF ili OTF za stolno računalo?
WOFF datoteke možete pretvoriti u instalacijske TTF ili OTF fontove za radnu površinu u nekoliko sekundi pomoću File2File.app izravno u svom web-pregledniku.
Trebam li još uvijek WOFF 1.0 na modernim web-stranicama?
Ne. Svi moderni preglednici izvorno podržavaju WOFF2. WOFF 1.0 potreban je samo ako morate podržavati zastarjele, starije preglednike poput Internet Explorera.