Formato carattere web aperto (.woff)

Raccomandazione Standard

Il Web Open Font Format (WOFF) è il formato di font web aperto di prima generazione storico approvato dal W3C, che avvolge font TrueType o OpenType standard con compressione zlib e metadati di licenza XML.

Ispeziona 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

Conversione 100% privata nel browser: 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 containerIntestazione 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 dei font sottostanti
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 (Corrente)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 file~40% più piccolo di TTF~60% più piccolo di TTFStandard di riferimento (100%)Standard di riferimento (100%)
Ambiente di destinazioneBrowser web legacy (IE9+, Safari 5+)Browser web moderni (Universale)Sistemi operativi desktopDesktop publishing e stampa

Modalità di corruzione comuni e guida al recupero Hex

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 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.
  • Denial of service tramite esaurimento della memoria durante l'espansione della tabella dei font.

Migliori pratiche difensive: Sanificare sempre i file WOFF scaricati con OTS prima di passarli ai motori di 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 di Standard Web formale.
2009Henrik Rydgård, Tal Leming e Jonathan Kew specificano WOFF per risolvere i problemi di licenza dei font web.

Vantaggi principali e pro

  • Riduce le dimensioni dei file dei font web del 30% al 50% rispetto ai file TTF o OTF grezzi non compressi.
  • Compatibilità universale all'indietro su ogni browser web desktop e mobile rilasciato dal 2011.
  • Include un blocco di metadati XML opzionale per la licenza dei font, crediti degli autori e informazioni sul copyright della fonderia.

Limiti tecnici e svantaggi

  • Superato da WOFF2, che comprime circa il 30% in meno utilizzando l'algoritmo Brotli.
  • 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 interessanti

  • 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 in modo nativo. WOFF 1.0 è necessario solo se devi supportare browser legacy obsoleti come Internet Explorer.