Web Open Font Format (.woff)
W3C StandartWeb 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:
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 46ASCII GÖSTERİMİ: wOFF
Standardizasyon: W3C Recommendation (2012)
Teknik Özellikler
| Konteyner Mimarisi | 44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data |
| Sıkıştırma | Deflate (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 Boyutlar | Up to 65,535 glyphs per font file |
| Şeffaflık | Inherited 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 Nitelik | WOFF (Güncel) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Sıkıştırma Kodeği | Tablo başına Deflate (zlib) | Tablo ön işlemeli Brotli | Sıkıştırılmamış SFNT | Sıkıştırılmamış SFNT |
| Sihirli İmza (Magic Signature) | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Göreceli Dosya Boyutu | TTF'ye göre ~%40 daha küçük | TTF'ye göre ~%60 daha küçük | Temel standart (%100) | Temel standart (%100) |
| Hedef Ortam | Eski web tarayıcıları (IE9+, Safari 5+) | Modern web tarayıcıları (Evrensel) | Masaüstü işletim sistemleri | Masaü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ı
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.