Web Open Font Format (.woff)

W3C Standaard

Web Open Font Format (WOFF) is het historische open weblettertypeformaat van de eerste generatie dat door het W3C wordt ondersteund. Het verpakt standaardlettertypen in TrueType- of OpenType-formaat met zlib-compressie en XML-licentiemetadata.

Inspecteren en metadata

Besturingssystemen en bestandsanalysators herkennen WOFF-bestanden aan de hand van de eerste binaire bytesequentie:

Selecteer of sleep bestanden hierheen

Privé - bestanden verlaten uw apparaat niet

of plak Ctrl+V
Privacygarantie zonder netwerktransmissie: 0 bytes geüpload naar externe servers. Alle verwerking vond lokaal plaats in uw browser-sandbox.

Bestandshandtekening op byteniveau (magic bytes)

Besturingssystemen en bestandsanalysators herkennen WOFF-bestanden aan de hand van de eerste binaire bytesequentie:

HEX-HANDTEKENING (OFFSET 0):

77 4F 46 46

ASCII-WEERGAVE: wOFF

Standaardisatie: W3C Recommendation (2012)

Technische specificaties

ContainerarchitectuurWOFF-header van 44 bytes, gevolgd door een tabelmap, zlib-gecomprimeerde tabelgegevens, optionele uitgebreide metadata en privégegevens
CompressieDeflate-compressie (zlib) toegepast op elke afzonderlijke lettertypetabel
Bytevolgorde (endianness)Big-Endian (SFNT-standaard)
KleurruimtenOvergenomen van onderliggende lettertypetabellen
Kanalen en structuurGlyphomtrekken van TrueType ('glyf') of PostScript ('CFF '), metrische gegevens en typografische functies
Maximale afmetingenMaximaal 65.535 glyphs per lettertypebestand
TransparantieOvergenomen van het onderliggende lettertypeformaat
Streaming en progressiefDoor tabellen één voor één te decomprimeren, kan het lettertype gestreamd worden geladen.

Technische vergelijkingsmatrix: WOFF versus concurrenten

Technisch kenmerkWOFF (Huidig)WOFF2TTFOTF
CompressiecodecDeflate (zlib) per tabelBrotli met tabelvoorverwerkingNiet-gecomprimeerde SFNTNiet-gecomprimeerde SFNT
Bestandshandtekening (magic bytes)wOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Relatieve bestandsgrootteVaak kleiner dan TTF; besparingen variëren per lettertypeVaak kleiner dan TTF; besparingen variëren per lettertypeReferentiestandaard (100%)Referentiestandaard (100%)
DoelomgevingVerouderde webbrowsers (IE9+, Safari 5+)Ondersteuning verschilt per browser.DesktopbesturingssystemenDtp en drukwerk

Veelvoorkomende beschadigingen en gids voor hex-herstel

Waarschuwing in de browserconsole: 'Failed to decode downloaded font: OTS parsing error'.

Oorzaak: Afwijkende opgegeven lengte van de ongecomprimeerde tabel of beschadigde zlib-stroom.

Herstel: Comprimeer lettertypetabellen opnieuw of converteer naar WOFF2 met de File2File.app Font Converter.

Beveiligingsanalyse en aanvalsvectoren voor parsers

Webbrowsers ontleden WOFF-bestanden die van niet-vertrouwde webdomeinen zijn gedownload met behulp van de OpenType Sanitizer (OTS) om exploitpayloads te blokkeren.

Bekende aanvalsvectoren

  • Bufferoverread tijdens zlib-decompressie van beschadigde stukken lettertypetabel.
  • Niet-overeenkomende tabellengtevelden die heapbufferoverflows veroorzaken in lettertyperenderers.
  • Denial of service door geheugenuitputting tijdens uitbreiding van lettertypetabellen.

Aanbevolen beveiligingspraktijken: Saneer gedownloade WOFF-bestanden altijd met OTS voordat u ze doorgeeft aan de lettertypemodules van het besturingssysteem.

Historische oorsprong en mijlpalen

2018WOFF2 volgde WOFF op als de voorkeursstandaard voor weblettertypen dankzij de betere Brotli-compressie.
2012W3C publiceert WOFF 1.0 officieel als een formele Web Standard Recommendation.
2009Henrik Rydgård, Tal Leming en Jonathan Kew specificeren WOFF om zorgen over licenties voor weblettertypen weg te nemen.

Belangrijkste voordelen

  • Kan de grootte van weblettertypebestanden verkleinen ten opzichte van onbewerkte TTF- of OTF-bestanden; de mate waarin hangt af van het lettertype en de encoder.
  • WOFF wordt ondersteund door veel browsers, inclusief oudere versies; de compatibiliteit hangt af van de browserversie en het platform.
  • Bevat een optioneel XML-metadatablok voor lettertypelicenties, auteursvermeldingen en copyrightinformatie van de lettergieterij.

Technische beperkingen

  • In veel webwerkprocessen vervangen door WOFF2, dat Brotli-compressie en transformaties van lettertypetabellen gebruikt; de besparing op de bestandsgrootte varieert.
  • Kan niet rechtstreeks worden geïnstalleerd in desktopbesturingssystemen (Windows/Mac) zonder conversie naar TTF/OTF.
  • Het oudere zlib-compressiealgoritme is minder efficiënt dan moderne entropie-encoders.

Interessante technische weetjes

  • De bestandshandtekening (magic bytes) voor WOFF 1.0 zijn 'wOFF' (0x77 0x4F 0x46 0x46), terwijl WOFF 2.0 'wOF2' gebruikt.
  • Lettergieterijen stemden er pas mee in hun lettertypen op het web toe te staan nadat WOFF was gemaakt, omdat de gespecialiseerde container weblettertypen onderscheidde van desktoplettertypen die konden worden gekopieerd.
  • WOFF werd oorspronkelijk geïmplementeerd in Firefox 3.6 in 2010, voordat het een officiële W3C-aanbeveling werd.

Veelgestelde technische vragen

Wat is het verschil tussen WOFF en WOFF2?

WOFF gebruikt zlib-compressie, terwijl WOFF2 gebruikmaakt van Brotli-compressie en lettertypetabeltransformaties. Het resulterende verschil in bestandsgrootte hangt af van het lettertype en de encoder.

Hoe kan ik een WOFF-lettertype converteren naar TTF of OTF voor desktopgebruik?

U kunt WOFF-bestanden binnen enkele seconden converteren naar installeerbare desktop-TTF- of OTF-lettertypen met behulp van File2File.app rechtstreeks in uw webbrowser.

Heb ik WOFF 1.0 nog nodig op moderne websites?

De huidige grote browsers ondersteunen WOFF2. Een WOFF-terugvaloptie kan nog steeds nuttig zijn voor oudere browsers of specifieke ingesloten omgevingen.