Web Open Font Format (.woff)
W3C StandardWeb Open Font Format (WOFF) er det første åpne standardformatet for webfonter godkjent av W3C. Det pakker inn standard TrueType- eller OpenType-skrifter med zlib-komprimering og XML-lisensieringsmetadata.
Inspeksjon og metadata
Operativsystemer og filanalysatorer identifiserer WOFF-filer ved å undersøke den innledende binære bytesekvensen:
Filsignatur på bytenivå (magiske byte)
Operativsystemer og filanalysatorer identifiserer WOFF-filer ved å undersøke den innledende binære bytesekvensen:
HEX-SIGNATUR (OFFSET 0):
77 4F 46 46ASCII-REPRESENTASJON: wOFF
Standardisering: W3C Recommendation (2012)
Tekniske spesifikasjoner
| Beholderarkitektur | WOFF-header på 44 byte etterfulgt av tabellkatalog, zlib-komprimerte tabelldata, valgfrie utvidede metadata og private data |
| Komprimering | Deflate-komprimering (zlib) brukes på hver enkelt skrifttypetabell |
| Bytterekkefølge | Big-endian (SFNT-standard) |
| Fargerom | Arves fra skrifttypens underliggende tabeller |
| Kanaler og struktur | TrueType- («glyf») eller PostScript- («CFF ») glyfkonturer, mål og typografiske funksjoner |
| Maks. dimensjoner | Opptil 65 535 glyfer per fontfil |
| Gjennomsiktighet | Arves fra skrifttypens underliggende format |
| Strømming og progressiv visning | Dekomprimering tabell for tabell gjør det mulig å strømme inn skrifttyper |
Teknisk sammenligningsmatrise: WOFF sammenlignet med konkurrenter
| Teknisk attributt | WOFF (Gjeldende) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Komprimeringskodek | Deflate (zlib) per tabell | Brotli med tabellforbehandling | Ukomprimert SFNT | Ukomprimert SFNT |
| Magisk signatur | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Relativ filstørrelse | Ofte mindre enn TTF; besparelsen varierer med skrifttypen | Ofte mindre enn TTF; besparelsen varierer med skrifttypen | Baselinestandard (100 %) | Baselinestandard (100 %) |
| Målmiljø | Eldre nettlesere (IE9+, Safari 5+) | Støtten varierer etter nettleser. | Stasjonære operativsystemer | Skrivebordspublisering og trykk |
Vanlige korrupsjonsmoduser og heksadesimal gjenopprettingsveiledning
Nettleserkonsolladvarsel: 'Failed to decode downloaded font: OTS parsing error'.
Underliggende årsak: Uoverensstemmelse i deklarert ukomprimert tabellengde eller skadet zlib-strøm.
Utbedring: Komprimer skrifttabeller på nytt eller konverter til WOFF2 ved hjelp av File2File.app Font Converter.
Sikkerhetsanalyse og angrepsvektorer mot parsere
Nettlesere analyserer WOFF-filer lastet ned fra utrygge nettsteder ved hjelp av OpenType Sanitizer (OTS) for å blokkere utnyttelsesnyttelast.
Kjente angrepsvektorer
- Overlesing av buffer under zlib-dekomprimering av korrupte skrifttabellbiter.
- Uoverensstemmende tabellengdefelt som utløser heap-bufferoverløp i skriftgjengivere.
- Tjenestenekt gjennom minneutmattelse under utvidelse av skrifttabeller.
Anbefalte sikkerhetstiltak: Rens alltid nedlastede WOFF-filer med OTS før de sendes videre til operativsystemets skrifttypemotorer.
Historisk opprinnelse og milepæler
Viktige fordeler
- Kan redusere størrelsen på webfontfiler sammenlignet med rå TTF- eller OTF-filer; hvor mye avhenger av skrifttypen og koderen.
- WOFF støttes av mange nettlesere, også eldre versjoner; kompatibiliteten avhenger av nettleserversjon og plattform.
- Inkluderer en valgfri XML-metadatablokk for skriftlisensiering, forfatterangivelser og opphavsrettsinformasjon for skriftstøperi.
Tekniske begrensninger og ulemper
- I mange arbeidsflyter på nettet er WOFF erstattet av WOFF2, som bruker Brotli-komprimering og transformasjoner av skrifttypetabeller; hvor mye filstørrelsen reduseres, varierer.
- Kan ikke installeres direkte på stasjonære operativsystemer (Windows/Mac) uten konvertering til TTF/OTF.
- Eldre zlib-komprimeringsalgoritme er mindre effektiv enn moderne entropikodere.
Interessante tekniske fakta
- Magiske byte for WOFF 1.0 er 'wOFF' (0x77 0x4F 0x46 0x46), mens WOFF 2.0 bruker 'wOF2'.
- Skriftstøperier gikk med på å tillate skriftene sine på nettet først etter at WOFF ble opprettet, fordi den spesialiserte beholderen skilte webskrifter fra piratkopierbare stasjonære skrifter.
- WOFF ble opprinnelig implementert i Firefox 3.6 i 2010 før det ble en offisiell W3C-anbefaling.
Ofte stilte tekniske spørsmål
Hva er forskjellen mellom WOFF og WOFF2?
WOFF bruker zlib-komprimering, mens WOFF2 bruker Brotli-komprimering og transformasjoner av skrifttypetabeller. Forskjellen i filstørrelse avhenger av skrifttypen og koderen.
Hvordan kan jeg konvertere en WOFF-skrift til TTF eller OTF for skrivebordsbruk?
Du kan konvertere WOFF-filer til installerbare TTF- eller OTF-skrifter for skrivebordet på sekunder ved hjelp av File2File.app direkte i nettleseren din.
Trenger jeg fremdeles WOFF 1.0 på moderne nettsteder?
Dagens store nettlesere støtter WOFF2. Et WOFF-reserveformat kan fortsatt være nyttig for eldre nettlesere eller bestemte innebygde miljøer.