Formato de fonte web aberta (.woff)
Recomendação PadrãoO Web Open Font Format (WOFF) é o formato histórico de fonte web aberta de primeira geração endossado pela W3C, encapsulando fontes padrão TrueType ou OpenType com compactação zlib e metadados de licenciamento XML.
Inspecionar e metadados
Sistemas operacionais e analisadores de arquivos identificam arquivos WOFF inspecionando a sequência de bytes binários inicial:
Assinatura de Cabeçalho em Nível de Byte (Magic Bytes)
Sistemas operacionais e analisadores de arquivos identificam arquivos WOFF inspecionando a sequência de bytes binários inicial:
ASSINATURA HEX (OFFSET 0):
77 4F 46 46REPRESENTAÇÃO ASCII: wOFF
Padronização: Recomendação W3C (2012)
Especificações Técnicas
| Arquitetura do Contêiner | Cabeçalho WOFF de 44 bytes seguido pelo diretório de tabelas, dados de tabela compactados com zlib, metadados estendidos opcionais e dados privados |
| Compressão | Compressão Deflate (zlib) aplicada a cada tabela de fontes individual |
| Ordem de Bytes (Endianness) | Big-Endian (padrão SFNT) |
| Espaços de Cores | Herdado das tabelas de fontes subjacentes |
| Canais e Estrutura | Contornos de glifos TrueType ('glyf') ou PostScript ('CFF '), métricas e recursos tipográficos |
| Dimensões Máximas | Até 65.535 glifos por arquivo de fonte |
| Transparência | Herdado do formato de fonte subjacente |
| Streaming e Progressivo | A descompressão tabela por tabela permite o carregamento de fontes em fluxo (streaming) |
Matriz de Comparação Técnica: WOFF vs Concorrentes
| Atributo Técnico | WOFF (Atual) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Codec de Compressão | Deflate (zlib) por tabela | Brotli com pré-processamento de tabela | SFNT não compactado | SFNT não compactado |
| Assinatura Mágica | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Tamanho Relativo do Arquivo | ~40% menor que o TTF | ~60% menor que o TTF | Padrão de referência (100%) | Padrão de referência (100%) |
| Ambiente de Destino | Navegadores web legados (IE9+, Safari 5+) | Navegadores web modernos (Universal) | Sistemas operacionais de desktop | Editoração eletrônica e impressão |
Modos Comuns de Corrupção e Guia de Recuperação Hex
Aviso no console do navegador: 'Failed to decode downloaded font: OTS parsing error'.
Causa Raiz: Incompatibilidade no comprimento declarado da tabela não compactada ou fluxo zlib danificado.
Recuperação: Recomprima as tabelas de fontes ou converta para WOFF2 usando o conversor de fontes do File2File.
Análise de Segurança e Vetores de Ataque ao Analisador
Os navegadores web analisam arquivos WOFF baixados de domínios web não confiáveis usando o OpenType Sanitizer (OTS) para bloquear cargas úteis de exploração.
Vetores de Ataque Conhecidos
- Leitura excessiva de buffer (over-read) durante a descompressão zlib de pedaços corrompidos da tabela de fontes.
- Campos de comprimento de tabela incompatíveis acionando estouros de buffer de heap em renderizadores de fontes.
- Negação de serviço por esgotamento de memória durante a expansão da tabela de fontes.
Melhores Práticas Defensivas: Sempre sanitize arquivos WOFF baixados com o OTS antes de passá-los para os mecanismos de fontes do sistema operacional.
Origens Históricas e Marcos
Principais Vantagens e Prós
- Reduz o tamanho dos arquivos de fontes web em 30% a 50% em comparação com arquivos TTF ou OTF brutos e não compactados.
- Compatibilidade retroativa universal em todos os navegadores web de desktop e dispositivos móveis lançados desde 2011.
- Inclui um bloco de metadados XML opcional para licenciamento de fontes, créditos de autoria e informações de direitos autorais da fundição.
Limitações Técnicas e Contras
- Substituído pelo WOFF2, que compacta cerca de 30% a mais usando o algoritmo Brotli.
- Não pode ser instalado diretamente em sistemas operacionais de desktop (Windows/Mac) sem conversão para TTF/OTF.
- O algoritmo de compressão zlib mais antigo é menos eficiente do que os codificadores de entropia modernos.
Curiosidades Técnicas
- Os magic bytes para o WOFF 1.0 são 'wOFF' (0x77 0x4F 0x46 0x46), enquanto o WOFF 2.0 usa 'wOF2'.
- As fundições de tipos concordaram em permitir suas fontes na web somente após a criação do WOFF, porque seu contêiner especializado distinguiu as fontes web das fontes de desktop pirateáveis.
- O WOFF foi implementado originalmente no Firefox 3.6 em 2010 antes de se tornar uma recomendação oficial da W3C.
Perguntas Técnicas Frequentes
Qual é a diferença entre WOFF e WOFF2?
O WOFF usa compressão zlib, enquanto o WOFF2 usa o algoritmo Brotli mais recente do Google e transformações de tabela, resultando em arquivos que são cerca de 30% menores que o WOFF.
Como posso converter uma fonte WOFF para TTF ou OTF para uso no desktop?
Você pode converter arquivos WOFF em fontes de desktop instaláveis TTF ou OTF em segundos usando o File2File.app diretamente no seu navegador web.
Eu ainda preciso do WOFF 1.0 em sites modernos?
Não. Todos os navegadores modernos suportam WOFF2 nativamente. O WOFF 1.0 só é necessário se você precisar dar suporte a navegadores legados obsoletos como o Internet Explorer.