Formato carattere web aperto (.woff)

Raccomandazione Standard

Web Open Font Format (WOFF) è il primo formato aperto per font web, approvato dal W3C. Racchiude font TrueType o OpenType standard con compressione zlib e metadati di licenza XML.

Ispezione e metadati

I sistemi operativi e gli analizzatori di file identificano i file WOFF ispezionando la sequenza di byte binari iniziale:

Seleziona o rilascia i file qui

Privato - i file non lasciano mai il tuo dispositivo

o incolla Ctrl+V
Garanzia di privacy con zero trasmissioni di rete: 0 byte caricati su server esterni. Tutta l'elaborazione è avvenuta localmente nella sandbox del tuo browser.

Firma dell'intestazione a livello di byte (Magic Bytes)

I sistemi operativi e gli analizzatori di file identificano i file WOFF ispezionando la sequenza di byte binari iniziale:

FIRMA ESADECIMALE (OFFSET 0):

77 4F 46 46

RAPPRESENTAZIONE ASCII: wOFF

Standardizzazione: Raccomandazione W3C (2012)

Specifiche tecniche

Architettura del contenitoreIntestazione WOFF di 44 byte seguita dalla directory delle tabelle, dati delle tabelle compressi con zlib, metadati estesi opzionali e dati privati
CompressioneCompressione Deflate (zlib) applicata a ciascuna tabella di font individuale
Endianness dei byteBig-endian (standard SFNT)
Spazi coloreEreditati dalle tabelle del font sottostante
Canali e strutturaTracciati dei glifi TrueType ('glyf') o PostScript ('CFF '), metriche e funzioni tipografiche
Dimensioni massimeFino a 65.535 glifi per file di font
TrasparenzaEreditata dal formato di font sottostante
Streaming e progressivoLa decompressione tabella per tabella consente il caricamento in streaming dei font

Matrice di confronto tecnico: WOFF vs Concorrenti

Attributo tecnicoWOFF (Attuale)WOFF2TTFOTF
Codec di compressioneDeflate (zlib) per tabellaBrotli con preelaborazione delle tabelleSFNT non compressoSFNT non compresso
Firma magicawOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Dimensione relativa del fileSpesso più piccolo di TTF; il risparmio varia in base al fontSpesso più piccolo di TTF; il risparmio varia in base al fontStandard di riferimento (100%)Standard di riferimento (100%)
Ambiente di destinazioneBrowser web legacy (IE9+, Safari 5+)Il supporto varia a seconda del browser.Sistemi operativi desktopDesktop publishing e stampa

Modalità di corruzione comuni e guida al recupero esadecimale

Avviso della console del browser: 'Failed to decode downloaded font: OTS parsing error'.

Causa principale: Discrepanza nella lunghezza dichiarata della tabella non compressa o flusso zlib danneggiato.

Ripristino: Ricomprimere le tabelle dei font o convertire in WOFF2 utilizzando File2File.app Font Converter.

Analisi di sicurezza e vettori di attacco del parser

I browser web analizzano i file WOFF scaricati da domini web non attendibili utilizzando l'OpenType Sanitizer (OTS) per bloccare i payload di exploit.

Vettori di attacco noti

  • Sovrallettura del buffer durante la decompressione zlib di blocchi di tabelle di font danneggiati.
  • Campi di lunghezza della tabella non corrispondenti che attivano overflow del buffer dell'heap nei renderer di font.
  • Interruzione del servizio dovuta all'esaurimento della memoria durante l'espansione delle tabelle dei font.

Migliori pratiche difensive: Sanificare sempre con OTS i file WOFF scaricati, prima di passarli ai motori di rendering dei font del sistema operativo.

Origini storiche e tappe fondamentali

2018Sostituito da WOFF2 come standard di font web preferito grazie alla compressione Brotli superiore.
2012Il W3C pubblica ufficialmente WOFF 1.0 come raccomandazione per uno standard web.
2009Henrik Rydgård, Tal Leming e Jonathan Kew specificano WOFF per risolvere i problemi di licenza dei font web.

Vantaggi principali

  • Può ridurre le dimensioni dei file dei font web rispetto ai file TTF o OTF grezzi; l’entità dipende dal font e dall’encoder.
  • Compatibile con tutti i browser web desktop e mobile rilasciati dal 2011.
  • Include un blocco facoltativo di metadati XML con informazioni sulla licenza dei font, gli autori e il copyright della fonderia.

Limiti tecnici e svantaggi

  • In molti flussi di lavoro web è stato sostituito da WOFF2, che usa la compressione Brotli e trasformazioni delle tabelle dei font; il risparmio di spazio varia.
  • Non può essere installato direttamente nei sistemi operativi desktop (Windows/Mac) senza conversione in TTF/OTF.
  • Il vecchio algoritmo di compressione zlib è meno efficiente dei moderni codificatori di entropia.

Curiosità tecniche

  • I byte magici per WOFF 1.0 sono 'wOFF' (0x77 0x4F 0x46 0x46), mentre WOFF 2.0 utilizza 'wOF2'.
  • Le fonderie di caratteri hanno accettato di consentire i loro font sul web solo dopo la creazione di WOFF, poiché il suo contenitore specializzato distingueva i font web dai font desktop piratabili.
  • WOFF è stato originariamente implementato in Firefox 3.6 nel 2010 prima di diventare una raccomandazione ufficiale del W3C.

Domande tecniche frequenti

Qual è la differenza tra WOFF e WOFF2?

WOFF utilizza la compressione zlib, mentre WOFF2 utilizza il più recente algoritmo Brotli di Google e trasformazioni delle tabelle, ottenendo file che sono circa il 30% più piccoli rispetto a WOFF.

Come posso convertire un font WOFF in TTF o OTF per uso desktop?

Puoi convertire i file WOFF in font TTF o OTF desktop installabili in pochi secondi utilizzando File2File.app direttamente nel tuo browser web.

Ho ancora bisogno di WOFF 1.0 sui siti web moderni?

No. Tutti i browser moderni supportano WOFF2 nativamente. WOFF 1.0 serve solo per supportare browser obsoleti come Internet Explorer.