Web Open Font Format (.woff)
W3C StandardWeb Open Font Format (WOFF) är det historiska öppna webbteckensnittsformatet av första generationen som godkänts av W3C. Det kapslar in standard TrueType- eller OpenType-teckensnitt med zlib-komprimering och XML-licensieringsmetadata.
Granska och metadata
Operativsystem och filanalysverktyg identifierar WOFF-filer genom att granska den inledande sekvensen av binära byte:
Signatur i filhuvudet på bytenivå (magiska byte)
Operativsystem och filanalysverktyg identifierar WOFF-filer genom att granska den inledande sekvensen av binära byte:
HEX-SIGNATUR (OFFSET 0):
77 4F 46 46ASCII-REPRESENTATION: wOFF
Standardisering: W3C Recommendation (2012)
Tekniska specifikationer
| Containerarkitektur | 44 byte långt WOFF-huvud följt av tabellkatalog, zlib-komprimerade tabelldata, valfria utökade metadata och privata data |
| Komprimering | Deflate-komprimering (zlib) tillämpas på varje enskild teckensnittstabell |
| Byteordning | Big-Endian (SFNT standard) |
| Färgrymder | Ärvs från de underliggande teckensnittstabellerna |
| Kanaler och struktur | TrueType-glyfkonturer ('glyf') eller PostScript-konturer ('CFF '), mått och typografiska funktioner |
| Maximala dimensioner | Upp till 65 535 glyfer per teckensnittsfil |
| Transparens | Ärvs från det underliggande teckensnittsformatet |
| Strömning och progressiv visning | Dekomprimering tabell för tabell möjliggör strömmande inläsning av teckensnitt |
Teknisk jämförelsematris: WOFF jämfört med konkurrenter
| Tekniskt attribut | WOFF (Aktuell) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Komprimeringscodec | Deflate (zlib) per tabell | Brotli med tabellförbehandling | Okomprimerad SFNT | Okomprimerad SFNT |
| Magisk signatur | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Relativ filstorlek | Ofta mindre än TTF; besparingen varierar mellan typsnitt | Ofta mindre än TTF; besparingen varierar mellan typsnitt | Baslinjestandard (100 %) | Baslinjestandard (100 %) |
| Målmiljö | Äldre webbläsare (IE9+, Safari 5+) | Stödet varierar mellan webbläsare. | Stationära operativsystem | Desktoppublicering och tryck |
Vanliga skadeorsaker och hex-återställningsguide
Varning i webbläsarkonsolen: 'Failed to decode downloaded font: OTS parsing error'.
Grundorsak: Felaktig matchning i deklarerad okomprimerad tabellängd eller skadad zlib-ström.
Återställning: Komprimera om teckensnittstabeller eller konvertera till WOFF2 med File2File.app Font Converter.
Säkerhetsanalys och attackvektorer för tolkar
Webbläsare tolkar WOFF-filer som laddats ner från otillförlitliga webbdomäner med hjälp av OpenType Sanitizer (OTS) för att blockera exploateringsnyttolaster.
Kända attackvektorer
- Överläsning av buffert under zlib-dekomprimering av korrupta teckensnittstabellblock.
- Felaktigt matchade tabellängdsfält som utlöser heap-buffertspill i teckensnittsrenderare.
- Tjänsteavbrott (DoS) genom minnesutmattning under expansion av teckensnittstabeller.
Rekommenderade skyddsåtgärder: Sanera alltid nedladdade WOFF-filer med OTS innan de skickas till operativsystemets teckensnittsmotorer.
Historiskt ursprung och milstolpar
Viktiga fördelar
- Kan minska filstorleken för webbtypsnitt jämfört med råa TTF- eller OTF-filer; minskningen beror på typsnittet och kodaren.
- WOFF stöds av många webbläsare, även äldre versioner; kompatibiliteten beror på webbläsarversion och plattform.
- Inkluderar ett valfritt XML-metadatablock för teckensnittslicensiering, upphovspersoner och copyrightinformation för stilgjuteriet.
Tekniska begränsningar
- Har i många webbflöden ersatts av WOFF2, som använder Brotli-komprimering och omvandling av typsnittstabeller; filstorleksbesparingen varierar.
- Kan inte installeras direkt i stationära operativsystem (Windows/Mac) utan konvertering till TTF/OTF.
- Den äldre zlib-komprimeringsalgoritmen är mindre effektiv än moderna entropikodare.
Intressant teknisk kuriosa
- Magiska byten för WOFF 1.0 är 'wOFF' (0x77 0x4F 0x46 0x46), medan WOFF 2.0 använder 'wOF2'.
- Teckensnittsstilgjuterier gick med på att tillåta sina teckensnitt på webben först efter att WOFF skapades, eftersom dess specialiserade behållare skilde webbteckensnitt från piratkopierbara stationära teckensnitt.
- WOFF implementerades ursprungligen i Firefox 3.6 år 2010 innan det blev en officiell W3C-rekommendation.
Vanliga tekniska frågor
Vad är skillnaden mellan WOFF och WOFF2?
WOFF använder zlib-komprimering, medan WOFF2 använder Brotli-komprimering och omvandling av typsnittstabeller. Skillnaden i filstorlek beror på typsnittet och kodaren.
Hur kan jag konvertera ett WOFF-typsnitt till TTF eller OTF för skrivbordsbruk?
Du kan konvertera WOFF-filer till installerbara TTF- eller OTF-skrivbordstypsnitt på några sekunder direkt i din webbläsare med File2File.app.
Behöver jag fortfarande WOFF 1.0 på moderna webbplatser?
Aktuella större webbläsare stöder WOFF2. En WOFF-reserv kan fortfarande vara användbar för äldre webbläsare eller vissa inbyggda miljöer.