Web Open Font Format (.woff)

W3C Standartinis

„Web Open Font Format" (WOFF) yra pirmosios kartos atvirasis žiniatinklio šriftų formatas, patvirtintas W3C organizacijos, kuris apgaubia standartinius „TrueType" arba „OpenType" šriftus zlib glaudinimu ir XML licencijavimo metaduomenimis.

Tikrinti ir metaduomenys

Operacinės sistemos ir failų analizatoriai atpažįsta WOFF failus tikrindami pradinę dvejetainę baitų seką:

Pasirinkite arba nuvilkite failus čia

100% privatus konvertavimas naršyklėje - failai niekada nepalieka jūsų įrenginio

arba įklijuokite Ctrl+V
Nulinio tinklo perdavimo privatumo garantija: 0 baitų įkelta į išorinius serverius. Visas apdorojimas vyko vietoje, jūsų naršyklės smėlio dėžėje (sandbox).

Baitų lygio antraštės parašas (magiškieji baitai)

Operacinės sistemos ir failų analizatoriai atpažįsta WOFF failus tikrindami pradinę dvejetainę baitų seką:

ŠEŠIOLIKTAINIS PARAŠAS (POSLINKIS 0):

77 4F 46 46

ASCII ATVAIZDAVIMAS: wOFF

Standartizacija: W3C Recommendation (2012)

Techninės specifikacijos

Konteinerio architektūra44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data
GlaudinimasDeflate (zlib) compression applied to each individual font table
Baitų seka (Endianness)Big-Endian (SFNT standard)
Spalvų erdvėsInherited from underlying font tables
Kanalai ir struktūraTrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features
Maksimalūs matmenysUp to 65,535 glyphs per font file
SkaidrumasInherited from underlying font format
Srautas ir progresyvusis įkėlimasTable-by-table decompression enables streaming font loading

Techninė palyginimo matrica: WOFF vs konkurentai

Techninis atributasWOFF (Dabartinis)WOFF2TTFOTF
Glaudinimo kodekasDeflate (zlib) pagal lentelęBrotli su lentelės išankstiniu apdorojimuNekompresuotas SFNTNekompresuotas SFNT
Magiškasis parašaswOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Santykinis failo dydis~40% mažesnis nei TTF~60% mažesnis nei TTFBazinė linija (100%)Bazinė linija (100%)
Tikslinė aplinkaSenstelėjusios naršyklės (IE9+, Safari 5+)Šiuolaikinės naršyklės (Visuotinės)Stalinės operacinės sistemosStalinė leidyba ir spauda

Dažni sugadinimo režimai ir šešioliktainio atkūrimo vadovas

Naršyklės konsolės įspėjimas: „Failed to decode downloaded font: OTS parsing error".

Pirminė priežastis: Deklaruoto nekompresuoto lentelės ilgio neatitikimas arba sugadintas zlib srautas.

Atkūrimas: Iš naujo suspauskite šrifto lenteles arba konvertuokite į WOFF2 naudodami „File2File Font Converter".

Saugumo analizė ir analizatoriaus atakos vektoriai

Žiniatinklio naršyklės analizuoja WOFF failus, atsisiųstus iš nepatikimų domenų, naudodamos „OpenType Sanitizer" (OTS), kad užblokuotų kenkėjiškus kodus.

Žinomi atakos vektoriai

  • Buferio perteklinis skaitymas zlib glaudinimo atmetimo metu iš sugadintų šrifto lentelės dalių.
  • Nesutampantys lentelės ilgio laukai, sukeliantys krūvos buferio perpildymą šriftų atvaizdavimo priemonėse.
  • Paslaugų trikdymas (DoS) dėl atminties išsekimo išplečiant šrifto lentelę.

Geriausia apsaugos praktika:

Istorinė kilmė ir svarbiausi etapai

2018Jį pakeitė WOFF2 kaip pageidaujamas žiniatinklio šriftų standartas dėl pranašesnio „Brotli" glaudinimo.
2012W3C oficialiai paskelbė WOFF 1.0 kaip oficialią žiniatinklio standarto rekomendaciją.
2009Henrik Rydgård, Tal Leming ir Jonathan Kew apibrėžė WOFF formatą, kad išspręstų žiniatinklio šriftų licencijavimo problemas.

Pagrindiniai privalumai

  • Sumažina žiniatinklio šriftų failų dydį 30% - 50%, palyginti su nekompresuotais TTF arba OTF failais.
  • Visuotinis atgalinis suderinamumas visose darbalaukio ir mobiliosiose naršyklėse, išleistose nuo 2011 m.
  • Apima pasirinktinį XML metaduomenų bloką šrifto licencijavimui, autorių kreditams ir liejyklos autorių teisių informacijai.

Techniniai apribojimai ir trūkumai

  • Pakeistas WOFF2, kuris glaudina maždaug 30% efektyviau naudodamas „Brotli" algoritmą.
  • Negalima tiesiogiai įdiegti stalinėse operacinėse sistemose („Windows" / „Mac") be konvertavimo į TTF/OTF.
  • Senesnis zlib glaudinimo algoritmas yra mažiau efektyvus nei šiuolaikiniai entropijos kodavimo įrenginiai.

Įdomūs techniniai faktai

  • WOFF 1.0 magiškieji baitai yra „wOFF" (0x77 0x4F 0x46 0x46), o WOFF 2.0 naudoja „wOF2".
  • Šriftų liejyklos sutiko leisti naudoti savo šriftus žiniatinklyje tik sukūrus WOFF, nes jo specializuotas konteineris atskyrė žiniatinklio šriftus nuo neteisėtai kopijuojamų stalinio kompiuterio šriftų.
  • WOFF iš pradžių buvo įdiegtas „Firefox 3.6" naršyklėje 2010 m., prieš tampant oficialia W3C rekomendacija.

Dažniausiai užduodami techniniai klausimai

Kuo skiriasi WOFF ir WOFF2?

WOFF naudoja zlib glaudinimą, o WOFF2 naudoja naujesnį „Google“ Brotli algoritmą ir lentelių transformacijas, todėl gaunami failai yra maždaug 30% mažesni nei WOFF.

Kaip konvertuoti WOFF šriftą į TTF arba OTF darbastalio naudojimui?

Galite per kelias sekundes konvertuoti WOFF failus į diegiamus darbalaukio TTF arba OTF šriftus naudodami File2File.app tiesiai savo interneto naršyklėje.

Ar man vis dar reikia WOFF 1.0 šiuolaikinėse svetainėse?

Ne. Visos šiuolaikinės naršyklės palaiko WOFF2 gimtąja tvarka. WOFF 1.0 reikalingas tik tuo atveju, jei privalote palaikyti pasenusias naršykles, pavyzdžiui, „Internet Explorer“.