Web Open Font Format (.woff)

W3C Standard

Web 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:

Velg eller slipp filer her

Privat - filer forlater aldri enheten din

eller lim inn Ctrl+V
Personverngaranti uten nettverksoverføring: 0 byte ble lastet opp til eksterne servere. All behandling foregikk lokalt i det isolerte nettlesermiljøet ditt.

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 46

ASCII-REPRESENTASJON: wOFF

Standardisering: W3C Recommendation (2012)

Tekniske spesifikasjoner

BeholderarkitekturWOFF-header på 44 byte etterfulgt av tabellkatalog, zlib-komprimerte tabelldata, valgfrie utvidede metadata og private data
KomprimeringDeflate-komprimering (zlib) brukes på hver enkelt skrifttypetabell
BytterekkefølgeBig-endian (SFNT-standard)
FargeromArves fra skrifttypens underliggende tabeller
Kanaler og strukturTrueType- («glyf») eller PostScript- («CFF ») glyfkonturer, mål og typografiske funksjoner
Maks. dimensjonerOpptil 65 535 glyfer per fontfil
GjennomsiktighetArves fra skrifttypens underliggende format
Strømming og progressiv visningDekomprimering tabell for tabell gjør det mulig å strømme inn skrifttyper

Teknisk sammenligningsmatrise: WOFF sammenlignet med konkurrenter

Teknisk attributtWOFF (Gjeldende)WOFF2TTFOTF
KomprimeringskodekDeflate (zlib) per tabellBrotli med tabellforbehandlingUkomprimert SFNTUkomprimert SFNT
Magisk signaturwOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Relativ filstørrelseOfte mindre enn TTF; besparelsen varierer med skrifttypenOfte mindre enn TTF; besparelsen varierer med skrifttypenBaselinestandard (100 %)Baselinestandard (100 %)
MålmiljøEldre nettlesere (IE9+, Safari 5+)Støtten varierer etter nettleser.Stasjonære operativsystemerSkrivebordspublisering 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

2018Erstattet av WOFF2 som foretrukket webfontstandard på grunn av overlegen Brotli-komprimering.
2012W3C publiserer offisielt WOFF 1.0 som en formell anbefaling for webstandarder.
2009Henrik Rydgård, Tal Leming og Jonathan Kew utarbeider WOFF-spesifikasjonen for å løse bekymringer rundt webfontlisensiering.

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.