वेब ओपन फ़ॉन्ट फ़ॉर्मेट (.woff)
W3C मानकवेब ओपन फॉन्ट फॉर्मेट (WOFF) W3C द्वारा समर्थित ऐतिहासिक पहली पीढ़ी का ओपन स्टैंडर्ड वेब फॉन्ट फॉर्मेट है, जो zlib कम्प्रेशन और XML लाइसेंसिंग मेटाडेटा के साथ मानक TrueType या OpenType फॉन्ट को रैप करता है।
निरीक्षण और मेटाडेटा
ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके WOFF फ़ाइलों की पहचान करते हैं:
बाइट-स्तरीय हेडर हस्ताक्षर (मैजिक बाइट्स)
ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके WOFF फ़ाइलों की पहचान करते हैं:
HEX हस्ताक्षर (ऑफ़सेट 0):
77 4F 46 46ASCII निरूपण: wOFF
मानकीकरण: W3C अनुशंसा (2012)
तकनीकी विनिर्देश
| कंटेनर आर्किटेक्चर | 44-बाइट WOFF हेडर के बाद तालिका निर्देशिका, zlib-संपीड़ित तालिका डेटा, वैकल्पिक विस्तारित मेटाडेटा और निजी डेटा |
| कंप्रेशन | हर अलग फ़ॉन्ट तालिका पर Deflate (zlib) संपीड़न लागू होता है |
| बाइट एंडियानेस | बिग-एंडियन (SFNT मानक) |
| कलर स्पेस | आधार फ़ॉन्ट तालिकाओं से विरासत में मिला |
| चैनल और संरचना | TrueType ('glyf') या PostScript ('CFF ') ग्लिफ़ की रूपरेखाएँ, माप और टाइपोग्राफ़िक सुविधाएँ। |
| अधिकतम आयाम | प्रति फ़ॉन्ट फ़ाइल अधिकतम 65,535 ग्लिफ़ |
| पारदर्शिता | आधार फ़ॉन्ट प्रारूप से विरासत में मिला |
| स्ट्रीमिंग और प्रोग्रेसिव | तालिका-दर-तालिका विसंपीड़न से फ़ॉन्ट को स्ट्रीम करते हुए लोड करना संभव होता है |
तकनीकी तुलना मैट्रिक्स: WOFF बनाम प्रतियोगी
| तकनीकी विशेषता | WOFF (वर्तमान) | WOFF2 | TTF | OTF |
|---|---|---|---|---|
| कंप्रेशन कोडेक | प्रति तालिका Deflate (zlib) | तालिका प्रीप्रोसेसिंग के साथ Brotli | असंपीडित SFNT | असंपीडित SFNT |
| मैजिक सिग्नेचर | wOFF (0x77 0x4F 0x46 0x46) | wOF2 (0x77 0x4F 0x46 0x32) | 0x00 0x01 0x00 0x00 | OTTO (0x4F 0x54 0x54 0x4F) |
| सापेक्ष फ़ाइल आकार | अक्सर TTF से छोटी; बचत फ़ॉन्ट के अनुसार अलग-अलग होती है | अक्सर TTF से छोटी; बचत फ़ॉन्ट के अनुसार अलग-अलग होती है | बेसलाइन स्टैंडर्ड (100%) | बेसलाइन स्टैंडर्ड (100%) |
| लक्षित पर्यावरण | लिगेसी वेब ब्राउज़र (IE9+, Safari 5+) | ब्राउज़र के अनुसार समर्थन अलग-अलग होता है। | डेस्कटॉप ऑपरेटिंग सिस्टम | डेस्कटॉप पब्लिशिंग और प्रिंट |
सामान्य करप्शन मोड और हेक्स रिकवरी गाइड
ब्राउज़र कंसोल चेतावनी: 'Failed to decode downloaded font: OTS parsing error'।
मूल कारण: घोषित असंपीडित तालिका लंबाई में बेमेल या क्षतिग्रस्त zlib स्ट्रीम।
रिकवरी: फॉन्ट तालिकाओं को पुनः संपीड़ित करें या File2File.app फॉन्ट कनवर्टर का उपयोग करके WOFF2 में कनवर्ट करें।
सुरक्षा विश्लेषण और पार्सर अटैक वेक्टर्स
वेब ब्राउज़र एक्सप्लॉइट पेलोड को ब्लॉक करने के लिए ओपनटाइप सैनिटाइज़र (OTS) का उपयोग करके अविश्वसनीय वेब डोमेन से डाउनलोड की गई WOFF फाइलों को पार्स करते हैं।
ज्ञात अटैक वेक्टर्स
- भ्रष्ट फॉन्ट तालिका चंक के zlib डिकम्प्रेशन के दौरान बफर ओवर-रीड।
- फॉन्ट रेंडरर्स में हीप बफर ओवरफ्लो को ट्रिगर करने वाले बेमेल तालिका लंबाई फ़ील्ड।
- फॉन्ट तालिका विस्तार के दौरान मेमोरी थकावट के माध्यम से सेवा से इनकार (DoS)।
सुरक्षात्मक सर्वोत्तम प्रथाएँ: ऑपरेटिंग सिस्टम फ़ॉन्ट इंजन में पास करने से पहले हमेशा OTS के साथ डाउनलोड किए गए WOFF फ़ाइलों को सैनिटाइज करें।
ऐतिहासिक मूल और मील के पत्थर
मुख्य लाभ और खूबियाँ
- कच्ची TTF या OTF फ़ाइलों की तुलना में वेब फ़ॉन्ट फ़ाइल का आकार घटा सकता है; कमी फ़ॉन्ट और एन्कोडर पर निर्भर करती है।
- 2011 के बाद जारी हर डेस्कटॉप और मोबाइल वेब ब्राउज़र के साथ पिछली-संगतता।
- फॉन्ट लाइसेंसिंग, लेखक क्रेडिट और फाउंड्री कॉपीराइट जानकारी के लिए एक वैकल्पिक XML मेटाडेटा ब्लॉक शामिल है।
तकनीकी सीमाएँ और कमियाँ
- कई वेब कार्यप्रवाहों में WOFF2 ने इसकी जगह ली है। WOFF2 Brotli संपीड़न और फ़ॉन्ट टेबल रूपांतरण का उपयोग करता है; फ़ाइल आकार में बचत बदलती रहती है।
- TTF/OTF में बदले बिना इसे सीधे डेस्कटॉप ऑपरेटिंग सिस्टम (Windows/Mac) पर इंस्टॉल नहीं किया जा सकता।
- पुराना zlib संपीड़न एल्गोरिदम आधुनिक एन्ट्रॉपी एनकोडर की तुलना में कम कुशल है।
रोचक तकनीकी जानकारी
- WOFF 1.0 के लिए मैजिक बाइट्स 'wOFF' (0x77 0x4F 0x46 0x46) हैं, जबकि WOFF 2.0 'wOF2' का उपयोग करता है।
- टाइप फाउंड्रीज़ केवल WOFF के बनाए जाने के बाद ही वेब पर अपने फॉन्ट की अनुमति देने के लिए सहमत हुईं, क्योंकि इसके विशेष कंटेनर ने वेब फ़ॉन्टों को डेस्कटॉप पर अवैध रूप से कॉपी किए जा सकने वाले फ़ॉन्टों से अलग किया था।
- आधिकारिक W3C रिकमेंडेशन बनने से पहले WOFF को मूल रूप से 2010 में Firefox 3.6 में लागू किया गया था।
अक्सर पूछे जाने वाले तकनीकी प्रश्न
WOFF और WOFF2 में क्या अंतर है?
WOFF zlib संपीड़न का उपयोग करता है, जबकि WOFF2 Google के नए Brotli एल्गोरिथ्म और टेबल ट्रांसफॉर्म का उपयोग करता है, जिसके परिणामस्वरूप ऐसी फ़ाइलें मिलती हैं जो WOFF से लगभग 30% छोटी होती हैं।
डेस्कटॉप उपयोग के लिए मैं WOFF फ़ॉन्ट को TTF या OTF में कैसे बदल सकता हूँ?
आप अपने वेब ब्राउज़र में सीधे File2File.app का उपयोग करके सेकंडों में WOFF फ़ाइलों को इंस्टॉल करने योग्य डेस्कटॉप TTF या OTF फ़ॉन्ट्स में बदल सकते हैं।
क्या मुझे अभी भी आधुनिक वेबसाइटों पर WOFF 1.0 की आवश्यकता है?
नहीं। सभी आधुनिक ब्राउज़र WOFF2 का नेटिव समर्थन करते हैं। WOFF 1.0 की आवश्यकता केवल तभी होती है जब आपको इंटरनेट एक्सप्लोरर जैसे अप्रचलित ब्राउज़रों का समर्थन करना हो।