Web Open Font Format (.woff)
W3C StandartsWeb Open Font Format (WOFF) ir vēsturisks pirmās paaudzes atvērtais tīmekļa fontu formāts, kuru apstiprinājis W3C un kurš ietver standarta TrueType vai OpenType fontus ar zlib saspiešanu un XML licencēšanas metadatiem.
Pārbaudīt un metadati
Operētājsistēmas un failu analizatori identificē WOFF failus, pārbaudot sākotnējo bināro baitu secību:
Baitu līmeņa galvenes paraksts (maģiskie baiti)
Operētājsistēmas un failu analizatori identificē WOFF failus, pārbaudot sākotnējo bināro baitu secību:
HEKSADECIMĀLAIS PARAKSTS (NOBĪDE 0):
77 4F 46 46ASCII ATTEIOLOJUMS: wOFF
Standartizācija: W3C Recommendation (2012)
Tehniskās specifikācijas
| Konteinera arhitektūra | 44-byte WOFF header followed by table directory, zlib-compressed table data, optional extended metadata, and private data |
| Saspiešana | Deflate (zlib) compression applied to each individual font table |
| Baitu secība | Big-Endian (SFNT standard) |
| Krāsu telpas | Inherited from underlying font tables |
| Kanāli un struktūra | TrueType ('glyf') or PostScript ('CFF ') glyph outlines, metrics, and typographic features |
| Maks. izmēri | Up to 65,535 glyphs per font file |
| Caurspīdīgums | Inherited from underlying font format |
| Straumēšana un progresīvā ielāde | Table-by-table decompression enables streaming font loading |
Tehniskā salīdzinājuma matrica: WOFF pret konkurentiem
| Tehniskais atribūts | WOFF (Pašreizējais) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| Saspiešanas kodeks | Deflate (zlib) katrai tabulai | Brotli ar tabulu priekšapstrādi | Nesaspiests SFNT | Nesaspiests SFNT |
| Maģiskais paraksts | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| Relatīvais faila izmērs | ~40% mazāks nekā TTF | ~60% mazāks nekā TTF | Bāzes standarts (100%) | Bāzes standarts (100%) |
| Mērķa vide | Vecākas tīmekļa pārlūkprogrammas (IE9+, Safari 5+) | Mūsdienu tīmekļa pārlūkprogrammas (universālas) | Darbvirsmas operētājsistēmas | Darbvirsmas publicēšana un druka |
Biežākie bojājumu veidi un heksadecimālās atkopšanas ceļvedis
Pārlūkprogrammas konsoles brīdinājums: 'Failed to decode downloaded font: OTS parsing error'.
Pamatcēlonis: Neatbilstība deklarētajā nesaspiestās tabulas garumā vai bojāta zlib plūsma.
Atkopšana: Atkārtoti saspiest fontu tabulas vai konvertēt uz WOFF2, izmantojot File2File Font Converter.
Drošības analīze un parsētāja uzbrukuma vektori
Tīmekļa pārlūkprogrammas analizē WOFF failus, kas lejupielādēti no neuzticamiem tīmekļa domēniem, izmantojot OpenType Sanitizer (OTS), lai bloķētu ievainojamības un ļaunprātīgu kodu.
Zināmie uzbrukuma vektori
- Bufera pārlasīšana zlib dekompresijas laikā, apstrādājot bojātas fontu tabulas daļas.
- Neatbilstoši tabulas garuma lauki, kas izraisa kaudzes bufera pārpildes fontu renderētājos.
- Pakalpojuma atteice (DoS) atmiņas izsmelšanas dēļ fontu tabulas izvēršanas laikā.
Aizsardzības labākā prakse:
Vēsturiskā izcelsme un pavērsieni
Galvenās priekšrocības un plusi
- Samazina tīmekļa fontu failu izmērus par 30% līdz 50% salīdzinājumā ar neapstrādātiem, nesaspiestiem TTF vai OTF failiem.
- Universāla atpakaļsaderība visās darbvirsmas un mobilo ierīču tīmekļa pārlūkprogrammās, kas izlaistas kopš 2011. gada.
- Ietver izvēles XML metadatu bloku fontu licencēšanai, autora norādēm un burtliets autortiesību informācijai.
Tehniskie ierobežojumi un mīnusi
- Aizstāts ar WOFF2, kas saspiež par aptuveni 30% vairāk, izmantojot Brotli algoritmu.
- To nevar tieši instalēt darbvirsmas operētājsistēmās (Windows/Mac) bez konvertēšanas uz TTF/OTF.
- Vecākais zlib saspiešanas algoritms ir mazāk efektīvs nekā mūsdienu entropijas kodētāji.
Interesanti tehniski fakti
- WOFF 1.0 maģiskie baiti ir 'wOFF' (0x77 0x4F 0x46 0x46), savukārt WOFF 2.0 izmanto 'wOF2'.
- Burtlietes vienojās atļaut savus fontus tīmeklī tikai pēc WOFF izveides, jo tāspecializētais konteiners atšķīra tīmekļa fontus no piratizējamiem darbvirsmas fontiem.
- WOFF sākotnēji tika ieviests pārlūkprogrammā Firefox 3.6 2010. gadā, pirms tas kļuva par oficiālu W3C ieteikumu.
Bieži uzdotie tehniskie jautājumi
Kāda ir atšķirība starp WOFF un WOFF2?
WOFF izmanto zlib saspiešanu, savukārt WOFF2 izmanto Google jaunāko Brotli algoritmu un tabulu transformācijas, nodrošinot failus, kas ir aptuveni par 30% mazāki nekā WOFF.
Kā es varu konvertēt WOFF fontu uz TTF vai OTF darbvirsmas lietošanai?
Varat konvertēt WOFF failus instalējamos darbvirsmas TTF vai OTF fontos dažu sekunžu laikā, izmantojot File2File.app tieši savā tīmekļa pārlūkprogrammā.
Vai mūsdienu tīmekļa vietnēs man joprojām ir nepieciešams WOFF 1.0?
Nē. Visas modernās pārlūkprogrammas dabiski atbalsta WOFF2. WOFF 1.0 ir nepieciešams tikai tad, ja jums ir jāatbalsta novecojušas pārlūkprogrammas, piemēram, Internet Explorer.