Formato de fuente web abierta (.woff)
W3C StandarWeb Open Font Format (WOFF) adalah format font web standar terbuka generasi pertama yang bersejarah dan didukung oleh W3C. Format ini membungkus font TrueType atau OpenType standar dengan kompresi zlib dan metadata lisensi XML.
Pemeriksaan & Metadata
Sistem operasi dan penganalisis file mengenali file WOFF dengan memeriksa urutan byte biner di bagian awal:
Tanda Tangan Header per Byte (Byte Penanda)
Sistem operasi dan penganalisis file mengenali file WOFF dengan memeriksa urutan byte biner di bagian awal:
TANDA TANGAN HEX (OFFSET 0):
77 4F 46 46REPRESENTASI ASCII: wOFF
Standardisasi: W3C Recommendation (2012)
Spesifikasi Teknis
| Arsitektur Kontainer | Header WOFF 44-byte diikuti direktori tabel, data tabel terkompresi zlib, metadata tambahan opsional, dan data privat |
| Kompresi | Kompresi Deflate (zlib) diterapkan pada setiap tabel font secara terpisah |
| Urutan Byte | Big-Endian (SFNT standard) |
| Ruang Warna | Diwarisi dari tabel font yang mendasarinya |
| Saluran & Struktur | Kontur glif TrueType ('glyf') atau PostScript ('CFF '), metrik, dan fitur tipografi |
| Dimensi Maksimum | Hingga 65,535 glif per file font |
| Transparansi | Diwarisi dari format font yang mendasarinya |
| Streaming & Progresif | Dekompresi per tabel memungkinkan pemuatan font secara streaming |
Perbandingan Teknis WOFF dengan Pesaing
| Atribut Teknis | WOFF (Saat Ini) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Kodek Kompresi | Deflate (zlib) per tabel | Brotli dengan pra-pemrosesan tabel | SFNT Tanpa Kompresi | SFNT Tanpa Kompresi |
| Tanda tangan ajaib | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Ukuran File Relatif | Sering kali lebih kecil daripada TTF; penghematan bergantung pada font | Sering kali lebih kecil daripada TTF; penghematan bergantung pada font | Standar dasar (100%) | Standar dasar (100%) |
| Lingkungan Target | Peramban web lama (IE9+, Safari 5+) | Dukungan berbeda-beda menurut peramban. | Sistem operasi desktop | Penerbitan desktop & cetak |
Pola Kerusakan Umum dan Panduan Pemulihan Hex
Peringatan konsol browser: 'Failed to decode downloaded font: OTS parsing error'.
Penyebab Utama: Ketidakcocokan panjang tabel tidak terkompresi yang dideklarasikan atau aliran zlib rusak.
Pemulihan: Kompres ulang tabel font atau konversikan ke WOFF2 menggunakan File2File.app Font Converter.
Analisis Keamanan & Vektor Serangan Parser
Browser web memparsing file WOFF yang diunduh dari domain web yang tidak tepercaya menggunakan OpenType Sanitizer (OTS) untuk memblokir payload eksploitasi.
Vektor Serangan yang Diketahui
- Pembacaan berlebih buffer (buffer over-read) selama dekompresi zlib dari potongan tabel font yang rusak.
- Bidang panjang tabel yang tidak cocok memicu luapan buffer heap (heap buffer overflows) pada perender font.
- Penolakan layanan melalui kehabisan memori selama ekspansi tabel font.
Praktik Terbaik Defensif: Selalu bersihkan file WOFF yang diunduh dengan OTS sebelum meneruskannya ke mesin font sistem operasi.
Asal-Usul & Tonggak Sejarah
Keunggulan & Kelebihan Utama
- Dapat mengurangi ukuran file font web dibandingkan file TTF atau OTF mentah; jumlahnya bergantung pada font dan encoder.
- Kompatibilitas mundur universal di setiap browser web desktop dan seluler yang dirilis sejak tahun 2011.
- Menyertakan blok metadata XML opsional untuk lisensi font, kredit penulis, dan informasi hak cipta perusahaan pembuat font.
Keterbatasan Teknis & Kekurangan
- Dalam banyak alur kerja web, format ini telah digantikan oleh WOFF2 yang menggunakan kompresi Brotli dan transformasi tabel font; penghematan ukuran file bervariasi.
- Tidak dapat diinstal langsung ke sistem operasi desktop (Windows/Mac) tanpa konversi ke TTF/OTF.
- Algoritma kompresi zlib yang lebih lama kurang efisien dibandingkan enkoder entropi modern.
Fakta Teknis Menarik
- Byte ajaib (magic bytes) untuk WOFF 1.0 adalah 'wOFF' (0x77 0x4F 0x46 0x46), sedangkan WOFF 2.0 menggunakan 'wOF2'.
- Perusahaan pembuat huruf setuju mengizinkan font mereka digunakan di web setelah WOFF dibuat, karena kontainer khususnya membedakan font web dari font desktop yang mudah dibajak.
- WOFF awalnya diterapkan di Firefox 3.6 pada tahun 2010 sebelum menjadi rekomendasi resmi W3C.
Pertanyaan Teknis yang Sering Diajukan
Apa perbedaan antara WOFF dan WOFF2?
WOFF menggunakan kompresi zlib, sedangkan WOFF2 menggunakan algoritma Brotli yang lebih baru dari Google serta transformasi tabel, menghasilkan file yang berukuran sekitar 30% lebih kecil daripada WOFF.
Bagaimana cara mengonversi font WOFF ke TTF atau OTF untuk penggunaan desktop?
Anda dapat mengonversi file WOFF menjadi font desktop TTF atau OTF yang dapat diinstal dalam hitungan detik menggunakan File2File.app langsung di peramban web.
Apakah saya masih memerlukan WOFF 1.0 pada situs web modern?
Tidak. Semua peramban modern mendukung WOFF2 secara bawaan. WOFF 1.0 hanya diperlukan jika Anda harus mendukung peramban lama yang sudah usang seperti Internet Explorer.