कच्चा हेडर किसी फ़ाइल का पहला भाग होता है, जिसे नामित मेटाडेटा फ़ील्ड की बजाय बाइट दर बाइट दिखाया जाता है। कई फ़ाइल फ़ॉर्मेट्स एक तय बाइट पैटर्न से शुरू होते हैं, जिसे अक्सर सिग्नेचर या मैजिक नंबर कहा जाता है। प्रोग्राम यह पैटर्न पढ़कर पता लगाते हैं कि यह किस प्रकार की फ़ाइल है।
मेटाडेटा रिपोर्ट में, Raw Header फ़ील्ड इन बाइट्स को हेक्साडेसिमल संख्याओं के रूप में दिखाती है। हर अक्षर जोड़ी, जैसे 89 या FF, 1 बाइट का प्रतिनिधित्व करती है।
ईमेल में भी सबसे ऊपर एक हेडर सेक्शन होता है, जिसमें From, To और Subject जैसे फ़ील्ड होते हैं। यह लेख किसी फ़ाइल के हेडर के बारे में है।
मान कैसा दिखता है
हेक्साडेसिमल या बेस 16 में, हर बाइट को 2 अक्षरों के रूप में लिखा जाता है, जो 0 से 9 तक के अंक और A से F तक के अक्षर होते हैं। किसी बाइट का मान 00 से FF के बीच कुछ भी हो सकता है।
ASCII कैरेक्टर कोड में, मान 21 से 7E अक्षरों, अंकों और विराम चिह्नों का प्रतिनिधित्व करते हैं, और 20 एक स्पेस होता है। 20 से कम मान कंट्रोल कोड होते हैं, और 00 पूरी तरह शून्य वाला कैरेक्टर होता है, जिसे NUL कहा जाता है।
रॉ हेडर को टेक्स्ट की तरह कैसे पढ़ें
कच्चे हेडर को टेक्स्ट में बदलने के लिए, हर बाइट को ASCII तालिका में देखें। केवल 20 से 7E तक की बाइट्स एक दृश्य ASCII कैरेक्टर या स्पेस के लिए होती हैं। अन्य बाइट्स ऐसा नहीं करतीं, इसलिए अक्सर आप हेडर का केवल कुछ हिस्सा ही पढ़ पाते हैं।
25 50 44 46 2Dका अर्थ है एक प्रतिशत चिह्न, अक्षर PDF और एक हाइफ़न।89 50 4E 47में बाइट 2 से 4 परPNGअक्षर होते हैं।
सामान्य मान
आम फ़ॉर्मेट्स इन सिग्नेचर से शुरू होते हैं:
- PNG इमेज:
89 50 4E 47 0D 0A 1A 0A - JPEG इमेज:
FF D8 FF, जहाँFF D8इमेज की शुरुआत को दर्शाता है - GIF इमेज:
47 49 46 38, फिर39 61या37 61(GIF89a या GIF87a) - PDF दस्तावेज़:
25 50 44 46 2D, फिर संस्करण, जैसे 1.7 - TIFF इमेज, लिटिल-एंडियन:
49 49 2A 00(II, फिर संख्या 42) - TIFF इमेज, बिग-एंडियन:
4D 4D 00 2A(MM, फिर संख्या 42) - ZIP आर्काइव, और ZIP-आधारित Office फ़ाइलें जैसे DOCX:
50 4B 03 04(PK) - ID3v2 टैग के साथ MP3 ऑडियो:
49 44 33(ID3) - WAV ऑडियो:
52 49 46 46(RIFF), 4 बाइट्स जो बदल सकती हैं, फिर57 41 56 45(WAVE) - MP4 वीडियो: 4-बाइट का आकार, फिर
66 74 79 70(ftyp)
TIFF फ़ाइल में पहली 2 बाइट्स फ़ाइल में मौजूद संख्याओं के लिए बाइट क्रम भी निर्धारित करती हैं। PDF फ़ाइल में सिग्नेचर के बाद के कैरेक्टर PDF संस्करण बताते हैं, लेकिन फ़ाइल में बाद की कोई एंट्री इसे ओवरराइड कर सकती है।
कौन सी फाइलें इसे रखती हैं
हर फ़ाइल का एक कच्चा हेडर होता है, लेकिन हर फ़ॉर्मेट का सिग्नेचर नहीं होता। प्लेन टेक्स्ट फ़ाइलें सीधे अपने टेक्स्ट से शुरू होती हैं। प्रोग्राम इन्हें पहचानते हैं क्योंकि उनकी शुरुआती बाइट्स केवल टेक्स्ट कैरेक्टर होती हैं।
यह क्यों महत्वपूर्ण है
फ़ाइल नाम एक्सटेंशन नाम का केवल एक हिस्सा होता है, और कोई भी इसे बदल सकता है। जब एक्सटेंशन गलत हो, तब भी हेडर वास्तविक फ़ाइल प्रकार और MIME टाइप दिखा सकता है।
कोई वेब सर्वर MIME टाइप न भेजे, या ब्राउज़र को मिले हुए टाइप पर संदेह हो सकता है। तब ब्राउज़र शुरुआती बाइट्स की तुलना ज्ञात पैटर्न वाली तालिका से कर सकता है। Unix file कमांड फ़ाइल की शुरुआत के पास किसी मैजिक नंबर को खोजती है।
हेडर आपको समस्याएँ पहचानने में भी मदद करता है। यदि photo.png नाम की फ़ाइल 89 50 4E 47 से शुरू नहीं होती, तो वह PNG फ़ॉर्मेट का पालन नहीं करती। फ़ाइल की शुरुआत क्षतिग्रस्त हो सकती है, या फ़ाइल किसी और प्रकार की हो सकती है जिसका एक्सटेंशन गलत है।
सिर्फ 00 बाइट्स से बना हेडर किसी आम सिग्नेचर से मेल नहीं खाता। लेकिन MP4 फ़ाइल 00 से शुरू हो सकती है, क्योंकि पहली 4 बाइट्स में छोटा आकार शून्य से शुरू होता है। जब कुछ भी मेल न खाए और बाइट्स टेक्स्ट न हों, तो ब्राउज़र फ़ाइल को application/octet-stream मानकर खोलते हैं।