Web Open Font Format (.woff)

W3C Standard

Web Open Font Format (WOFF) to historyczny, otwarty standard czcionek internetowych pierwszej generacji, zatwierdzony przez W3C. Umieszcza standardowe czcionki TrueType lub OpenType w kontenerze, który stosuje kompresję zlib i przechowuje metadane licencyjne 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

Prywatnie - 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-bajtowy nagłówek WOFF, katalog tabel, dane tabel skompresowane zlib, opcjonalne rozszerzone metadane i dane prywatne
KompresjaKompresja Deflate (zlib) stosowana do każdej tabeli czcionki osobno
Kolejność bajtów (Endianness)Big-Endian (standard SFNT)
Przestrzenie kolorówDziedziczone z bazowych tabel czcionki
Kanały i strukturaKontury glifów TrueType (tabela 'glyf') lub PostScript (CFF), metryki i funkcje typograficzne
Maks. wymiaryDo 65 535 glifów w jednym pliku czcionki
PrzezroczystośćDziedziczona z bazowego formatu czcionki
Streaming i progresywne ładowanieDekompresja kolejnych tabel umożliwia strumieniowe wczytywanie czcionki

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+)Obsługa zależy od przeglądarki.Stacjonarne systemy operacyjneSkład komputerowy 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.app 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 sterty w mechanizmach renderowania czcionek.
  • Atak typu odmowa usługi (DoS) poprzez wyczerpanie pamięci podczas rozszerzania tabeli czcionek.

Najlepsze praktyki obronne: Zawsze oczyszczaj pobrane pliki WOFF za pomocą OTS przed przekazaniem ich do systemowych mechanizmów obsługi czcionek.

Pochodzenie historyczne i kamienie milowe

2018Zastąpiony przez WOFF2 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 czcionek internetowych o 30 - 50% w porównaniu z surowymi, nieskompresowanymi plikami 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

  • Został zastąpiony przez WOFF2, który dzięki algorytmowi Brotli zmniejsza rozmiar plików o około 30%.
  • 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

  • Sygnatura bajtowa WOFF 1.0 to „wOFF” (0x77 0x4F 0x46 0x46), a WOFF 2.0 używa „wOF2”.
  • Odlewnie czcionek zgodziły się udostępniać swoje czcionki w internecie dopiero po utworzeniu formatu WOFF, którego specjalny kontener odróżniał czcionki internetowe od desktopowych, które można było piracić.
  • 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, a WOFF2 - nowszego algorytmu Brotli firmy Google i transformacji tabel. Dzięki temu pliki WOFF2 są o około 30% mniejsze niż WOFF.

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

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

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 przeglądarki, takie jak Internet Explorer.