Web Open Font Format (.woff)

W3C Standardowy

Web Open Font Format (WOFF) to historyczny, otwartoźródłowy standard czcionek internetowych pierwszej generacji, zatwierdzony przez W3C, który otacza standardowe czcionki TrueType lub OpenType kompresją zlib oraz metadanymi licencyjnymi XML.

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki WOFF, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Konwersja w 100% prywatna w przeglądarce - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki WOFF, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

77 4F 46 46

REPREZENTACJA ASCII: wOFF

Normalizacja: W3C Recommendation (2012)

Specyfikacja techniczna

Architektura kontenera44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data
KompresjaDeflate (zlib) compression applied to each individual font table
Kolejność bajtów (Endianness)Big-Endian (SFNT standard)
Przestrzenie kolorówInherited from underlying font tables
Kanały i strukturaTrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features
Maks. wymiaryUp to 65,535 glyphs per font file
PrzezroczystośćInherited from underlying font format
Streaming i progresywne ładowanieTable-by-table decompression enables streaming font loading

Techniczna macierz porównawcza: WOFF a konkurencja

Atrybut technicznyWOFF (Bieżący)WOFF2TTFOTF
Kodek kompresjiDeflate (zlib) na tabelęBrotli z wstępnym przetwarzaniem tabelNieskompresowany SFNTNieskompresowany SFNT
Sygnatura magicznawOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Względny rozmiar plikuok. 40% mniejszy niż TTFok. 60% mniejszy niż TTFStandard bazowy (100%)Standard bazowy (100%)
Środowisko doceloweStarsze przeglądarki internetowe (IE9+, Safari 5+)Nowoczesne przeglądarki internetowe (uniwersalne)Stacjonarne systemy operacyjnePublikacje komputerowe i druk

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Ostrzeżenie konsoli przeglądarki: 'Failed to decode downloaded font: OTS parsing error'.

Główna przyczyna: Niezgodność z zadeklarowaną nieskompresowaną długością tabeli lub uszkodzony strumień zlib.

Odzyskiwanie: Ponownie skompresuj tablice czcionek lub przekonwertuj do formatu WOFF2 za pomocą narzędzia File2File Font Converter.

Analiza bezpieczeństwa i wektory ataku na parser

Przeglądarki internetowe analizują pliki WOFF pobrane z niezaufanych domen przy użyciu modułu OpenType Sanitizer (OTS), aby zablokować złośliwe ładunki.

Znane wektory ataku

  • Nadmierny odczyt bufora podczas dekompresji zlib uszkodzonych fragmentów tabeli czcionek.
  • Niezgodne pola długości tabel wywołujące przepełnienia bufora stosu w renderach czcionek.
  • Atak typu odmowa usługi (DoS) poprzez wyczerpanie pamięci podczas rozszerzania tabeli czcionek.

Najlepsze praktyki obronne:

Pochodzenie historyczne i kamienie milowe

2018Zastąpiony przez W3C jako preferowany standard czcionek internetowych ze względu na lepszą kompresję Brotli.
2012W3C oficjalnie publikuje WOFF 1.0 jako formalne zalecenie standardu internetowego (Web Standard Recommendation).
2009Henrik Rydgård, Tal Leming i Jonathan Kew określają specyfikację WOFF w celu rozwiązania obaw związanych z licencjonowaniem czcionek internetowych.

Główne zalety

  • Zmniejsza rozmiar plików czcionek internetowych o 30% do 50% w porównaniu do nieskompresowanych plików TTF lub OTF.
  • Uniwersalna wsteczna kompatybilność we wszystkich przeglądarkach internetowych na komputery i urządzenia mobilne wydanych od 2011 roku.
  • Zawiera opcjonalny blok metadanych XML zawierający informacje o licencji czcionki, autorze oraz prawach autorskich odlewni.

Ograniczenia techniczne i wady

  • Wypparty przez WOFF2, który kompresuje pliki o około 30% wydajniej przy użyciu algorytmu Brotli.
  • Nie można go zainstalować bezpośrednio w systemach operacyjnych komputerów stacjonarnych (Windows/Mac) bez wcześniejszej konwersji do formatu TTF/OTF.
  • Starszy algorytm kompresji zlib jest mniej wydajny niż nowoczesne kodery entropijne.

Ciekawe informacje techniczne

  • Bajtami magicznymi dla WOFF 1.0 są 'wOFF' (0x77 0x4F 0x46 0x46), podczas gdy WOFF 2.0 używa 'wOF2'.
  • Odlewnie czcionek zgodziły się na udostępnienie swoich czcionek w internecie dopiero po utworzeniu formatu WOFF, ponieważ jego wyspecjalizowany kontener odróżniał czcionki internetowe od czcionek komputerowych podatnych na piractwo.
  • Format WOFF został pierwotnie zaimplementowany w przeglądarce Firefox 3.6 w 2010 roku, zanim stał się oficjalnym zaleceniem W3C.

Często zadawane pytania techniczne

Jaka jest różnica między WOFF a WOFF2?

WOFF używa kompresji zlib, podczas gdy WOFF2 używa nowszego algorytmu Brotli firmy Google oraz transformacji tabel, co skutkuje plikami mniejszymi o około 30% w porównaniu do WOFF.

Jak mogę przekonwertować czcionkę WOFF na TTF lub OTF do użytku na komputerze?

Możesz przekonwertować pliki WOFF na instalowalne czcionki desktopowe TTF lub OTF w kilka sekund za pomocą File2File.app bezpośrednio w przeglądarce internetowej.

Czy nadal potrzebuję WOFF 1.0 na nowoczesnych stronach internetowych?

Nie. Wszystkie nowoczesne przeglądarki obsługują WOFF2 natywnie. WOFF 1.0 jest potrzebny tylko wtedy, gdy musisz obsługiwać przestarzałe, legacy przeglądarki, takie jak Internet Explorer.