Web Open Font Format (.woff)

W3C Standart

Web Open Font Format (WOFF), W3C tarafından onaylanan, standart TrueType veya OpenType fontlarını zlib sıkıştırması ve XML lisanslama meta verileriyle sarmalayan, birinci nesil açık standart web fontu formatıdır.

İncele & Meta Veriler

İşletim sistemleri ve dosya çözümleyicileri, WOFF dosyalarını başlangıçtaki ikili bayt dizisini inceleyerek tanımlar:

Dosyaları buraya seçin veya bırakın

Kesinlikle %100 tarayıcı içi gizli dönüşüm - dosyalar asla cihazınızdan ayrılmaz

veya yapıştırın Ctrl+V
Sıfır Ağ Aktarımı Gizlilik Garantisi: Harici sunuculara 0 bayt yüklendi. Tüm işlemler tarayıcınızın korumalı alanında (sandbox) yerel olarak gerçekleştirildi.

Bayt Düzeyinde Başlık İmzası (Magic Bytes)

İşletim sistemleri ve dosya çözümleyicileri, WOFF dosyalarını başlangıçtaki ikili bayt dizisini inceleyerek tanımlar:

HEX İMZASI (OFSET 0):

77 4F 46 46

ASCII GÖSTERİMİ: wOFF

Standardizasyon: W3C Recommendation (2012)

Teknik Özellikler

Konteyner Mimarisi44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data
SıkıştırmaDeflate (zlib) compression applied to each individual font table
Bayt Düzeni (Endianness)Big-Endian (SFNT standard)
Renk UzaylarıInherited from underlying font tables
Kanallar ve YapıTrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features
Maksimum BoyutlarUp to 65,535 glyphs per font file
ŞeffaflıkInherited from underlying font format
Akış ve Aşamalı (Streaming & Progressive)Table-by-table decompression enables streaming font loading

Teknik Karşılaştırma Matrisi: WOFF ve Rakipleri

Teknik NitelikWOFF (Güncel)WOFF2TTFOTF
Sıkıştırma KodeğiTablo başına Deflate (zlib)Tablo ön işlemeli BrotliSıkıştırılmamış SFNTSıkıştırılmamış SFNT
Sihirli İmza (Magic Signature)wOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Göreceli Dosya BoyutuTTF'ye göre ~%40 daha küçükTTF'ye göre ~%60 daha küçükTemel standart (%100)Temel standart (%100)
Hedef OrtamEski web tarayıcıları (IE9+, Safari 5+)Modern web tarayıcıları (Evrensel)Masaüstü işletim sistemleriMasaüstü yayıncılık ve baskı

Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu

Tarayıcı konsolu uyarısı: 'Failed to downloaded font: OTS parsing error' (İndirilen fontun kodu çözülemedi: OTS ayrıştırma hatası).

Kök Neden: Bildirilen sıkıştırılmamış tablo uzunluğunda uyuşmazlık veya hasarlı zlib akışı.

Kurtarma: Font tablolarını yeniden sıkıştırın veya File2File Font Dönüştürücü kullanarak WOFF2 formatına dönüştürün.

Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri

Web tarayıcıları, güvenilmeyen web alan adlarından indirilen WOFF dosyalarını, kötü amaçlı kod yüklerini engellemek için OpenType Sanitizer (OTS) kullanarak ayrıştırır.

Bilinen Saldırı Vektörleri

  • Bozuk font tablosu öbeklerinin zlib ile açılması sırasında arabellek aşımı (buffer over-read).
  • Font oluşturucularda yığın (heap) arabelleği taşmalarını tetikleyen uyuşmaz belleksel tablo uzunluk alanları.
  • Font tablosu genişlemesi sırasında bellek tükenmesi yoluyla hizmet reddi (DoS).

Savunmacı En İyi Uygulamalar:

Tarihsel Kökenler ve Kilometre Taşları

2018Üstün Brotli sıkıştırma özelliği sayesinde tercih edilen web fontu standardı olarak yerini WOFF2'ye bıraktı.
2012W3C, WOFF 1.0 standardını resmi bir Web Standardı Tavsiyesi olarak yayınladı.
2009Henrik Rydgård, Tal Leming ve Jonathan Kew, web fontu lisanslama endişelerini çözmek amacıyla WOFF'u tasarladı.

Temel Avantajlar ve Artılar

  • Ham ve sıkıştırılmamış TTF veya OTF dosyalarına kıyasla web fontu dosya boyutlarını %30 ila %50 oranında küçültür.
  • 2011'den bu yana piyasaya sürülen tüm masaüstü ve mobil web tarayıcılarında evrensel geriye dönük uyumluluk sunar.
  • Font lisanslama, yazar bilgileri ve dökümhane telif hakkı bilgileri için isteğe bağlı bir XML meta veri bloğu içerir.

Teknik Kısıtlamalar ve Eksiler

  • Brotli algoritmasını kullanarak yaklaşık %30 daha küçük sıkıştırma sağlayan WOFF2 tarafından geçersiz kılınmıştır.
  • TTF/OTF formatına dönüştürülmeden doğrudan masaüstü işletim sistemlerine (Windows/Mac) kurulamaz.
  • Eski zlib sıkıştırma algoritması, modern entropi kodlayıcılara göre daha az verimlidir.

İlginç Teknik Bilgiler

  • WOFF 1.0 için sihirli baytlar (magic bytes) 'wOFF' (0x77 0x4F 0x46 0x46) iken, WOFF 2.0 'wOF2' kullanır.
  • Tipografi dökümhaneleri, özel konteyneri web fontlarını korsanlığa açık masaüstü fontlarından ayırdığı için WOFF oluşturulduktan sonra fontlarının web'de kullanılmasına izin vermiştir.
  • WOFF, resmi bir W3C tavsiyesi haline gelmeden önce ilk olarak 2010 yılında Firefox 3.6'da uygulanmıştır.

Sıkça Sorulan Teknik Sorular

WOFF ve WOFF2 arasındaki fark nedir?

WOFF, zlib sıkıştırması kullanırken; WOFF2, Google'ın daha yeni Brotli algoritmasını ve tablo dönüşümlerini kullanır ve bunun sonucunda WOFF'tan yaklaşık %30 daha küçük dosyalar elde edilir.

Masaüstü kullanımı için bir WOFF fontunu TTF veya OTF'ye nasıl dönüştürebilirim?

Web tarayıcınızda doğrudan File2File.app kullanarak WOFF dosyalarını saniyeler içinde yüklenebilir masaüstü TTF veya OTF fontlarına dönüştürebilirsiniz.

Modern web sitelerinde hâlâ WOFF 1.0'a ihtiyacım var mı?

Hayır. Tüm modern tarayıcılar WOFF2'yi yerel olarak destekler. WOFF 1.0 yalnızca Internet Explorer gibi eski ve kullanımdan kalkmış tarayıcıları desteklemeniz gerekiyorsa lazımdır.