Web Open Font Format (.woff)
W3C StandardWeb 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:
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 46ASCII-REPRÆSENTATION: wOFF
Standardisering: W3C Recommendation (2012)
Tekniske specifikationer
| Containerarkitektur | 44-byte WOFF-header efterfulgt af tabelmappe, zlib-komprimerede tabeldata, valgfri udvidede metadata og private data |
| Komprimering | Deflate-komprimering (zlib) anvendes på hver skrifttypetabel for sig |
| Byte-rækkefølge | Big-Endian (SFNT-standard) |
| Farverum | Arves fra de underliggende skrifttypetabeller |
| Kanaler og struktur | Glyfkonturer fra TrueType ('glyf') eller PostScript ('CFF '), målinger og typografiske funktioner |
| Maks. dimensioner | Op til 65,535 glyffer pr. skrifttypefil |
| Gennemsigtighed | Arves fra det underliggende skrifttypeformat |
| Streaming og progressiv | Dekomprimering tabel for tabel muliggør streamingindlæsning af skrifttyper |
Teknisk sammenligningsmatrix: WOFF sammenlignet med konkurrenterne
| Teknisk attribut | WOFF (Aktuel) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Komprimeringscodec | Deflate (zlib) pr. tabel | Brotli med tabelpræprocessering | Ukomprimeret SFNT | Ukomprimeret 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 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 operativsystemer | Desktoppublicering 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
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.