Web Open Font Format (.woff)

W3C Standard

Web Open Font Format (WOFF) er det historiske, åbne webfontformat af første generation, der er godkendt af W3C, og som indpakker standard TrueType- eller OpenType-skrifttyper med zlib-komprimering og XML-licensmetadata.

Undersøgelse og metadata

Operativsystemer og filanalysatorer identificerer WOFF-filer ved at inspicere den indledende binære bytesekvens:

Vælg eller træk filer hertil

Privat - filer forlader aldrig din enhed

eller indsæt Ctrl+V
Privatlivsgaranti uden netværksoverførsel: 0 byte overført til eksterne servere. Al behandling foregik lokalt i browserens sandkasse.

Byte-niveau Header-signatur (Magic Bytes)

Operativsystemer og filanalysatorer identificerer WOFF-filer ved at inspicere den indledende binære bytesekvens:

HEX-SIGNATUR (OFFSET 0):

77 4F 46 46

ASCII-REPRÆSENTATION: wOFF

Standardisering: W3C Recommendation (2012)

Tekniske specifikationer

Containerarkitektur44-byte WOFF-header efterfulgt af tabelmappe, zlib-komprimerede tabeldata, valgfri udvidede metadata og private data
KomprimeringDeflate-komprimering (zlib) anvendes på hver skrifttypetabel for sig
Byte-rækkefølgeBig-Endian (SFNT-standard)
FarverumArves fra de underliggende skrifttypetabeller
Kanaler og strukturGlyfkonturer fra TrueType ('glyf') eller PostScript ('CFF '), målinger og typografiske funktioner
Maks. dimensionerOp til 65,535 glyffer pr. skrifttypefil
GennemsigtighedArves fra det underliggende skrifttypeformat
Streaming og progressivDekomprimering tabel for tabel muliggør streamingindlæsning af skrifttyper

Teknisk sammenligningsmatrix: WOFF sammenlignet med konkurrenterne

Teknisk attributWOFF (Aktuel)WOFF2TTFOTF
KomprimeringscodecDeflate (zlib) pr. tabelBrotli med tabelpræprocesseringUkomprimeret SFNTUkomprimeret SFNT
Magisk signaturwOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Relativ filstørrelseOfte mindre end TTF; besparelsen varierer efter skrifttype.Ofte mindre end TTF; besparelsen varierer efter skrifttype.Baselinestandard (100%)Baselinestandard (100%)
MålmiljøÆldre webbrowsere (IE9+, Safari 5+)Understøttelsen varierer efter browser.Stationære operativsystemerDesktoppublicering og tryk

Almindelige korruptionstilstande og hex-gendannelsesvejledning

Browserkonsoladvarsel: 'Failed to decode downloaded font: OTS parsing error'.

Grundlæggende årsag: Uoverensstemmelse i erklæret ukomprimeret tabellængde eller beskadiget zlib-strøm.

Gendannelse: Genkomprimer fonttabeller eller konverter til WOFF2 ved hjælp af File2File.app Font Converter.

Sikkerhedsanalyse og parser-angrebsvektorer

Webbrowsere fortolker WOFF-filer downloadet fra utroværdige webdomæner ved hjælp af OpenType Sanitizer (OTS) for at blokere udnyttelsesnyttelast.

Kendte angrebsvektorer

  • Bufferoverlæsning under zlib-dekomprimering af korrupte skrifttypetabelblokke.
  • Uoverensstemmende tabellængdefelter, der udløser bufferoverløb i heapen i skrifttypegengivere.
  • Tjenestenægtelse (DoS) gennem hukommelsesudmattelse under udvidelse af skrifttypetabeller.

Defensive bedste praksisser: Rens altid downloadede WOFF-filer med OTS, før de sendes videre til operativsystemets skrifttypemotorer.

Historisk oprindelse og milepæle

2018WOFF2 afløser WOFF som den foretrukne webskrifttypestandard, fordi Brotli komprimerer bedre.
2012W3C udgiver officielt WOFF 1.0 som en formel anbefaling om en webstandard.
2009Henrik Rydgård, Tal Leming og Jonathan Kew specificerer WOFF for at løse problemer med webfontlicensering.

Vigtige fordele og styrker

  • Kan reducere webskrifttypers filstørrelse sammenlignet med rå TTF- eller OTF-filer; besparelsen afhænger af skrifttypen og encoderen.
  • WOFF understøttes af mange browsere, også ældre versioner; kompatibiliteten afhænger af browserversion og platform.
  • Indeholder en valgfri XML-metadatablok til fontlicensering, ophavsmandskreditering og støberiets ophavsretlige oplysninger.

Tekniske begrænsninger og ulemper

  • WOFF2 har afløst WOFF i mange webarbejdsgange. WOFF2 bruger Brotli-komprimering og transformation af skrifttabeller; besparelsen i filstørrelse varierer.
  • Kan ikke installeres direkte på stationære operativsystemer (Windows/Mac) uden konvertering til TTF/OTF.
  • Den ældre zlib-komprimeringsalgoritme er mindre effektiv end moderne entropikodere.

Interessante tekniske fakta

  • Magiske bytes for WOFF 1.0 er 'wOFF' (0x77 0x4F 0x46 0x46), hvorimod WOFF 2.0 bruger 'wOF2'.
  • Skriftstøberier gik kun med til at tillade deres skrifttyper på nettet, efter WOFF blev oprettet, fordi den specialiserede beholder adskilte webskrifttyper fra piratkopierbare desktopskrifttyper.
  • WOFF blev oprindeligt implementeret i Firefox 3.6 i 2010, før det blev en officiel W3C-anbefaling.

Ofte stillede tekniske spørgsmål

Hvad er forskellen mellem WOFF og WOFF2?

WOFF bruger zlib-komprimering, mens WOFF2 bruger Brotli-komprimering og skrifttypetabeltransformationer. Forskellen i filstørrelse afhænger af skrifttypen og encoderen.

Hvordan kan jeg konvertere en WOFF-skrifttype til TTF eller OTF til skrivebordsbrug?

Du kan konvertere WOFF-filer til installerbare TTF- eller OTF-skrifttyper til skrivebordet på få sekunder ved hjælp af File2File.app direkte i din webbrowser.

Har jeg stadig brug for WOFF 1.0 på moderne hjemmesider?

De største aktuelle browsere understøtter WOFF2. WOFF kan stadig være nyttigt som reserveformat til ældre browsere eller særlige indlejrede miljøer.