خام ہیڈر فائل کا پہلا حصہ ہوتا ہے، جو نام والے میٹا ڈیٹا فیلڈز کے بجائے بائٹ در بائٹ دکھایا جاتا ہے۔ بہت سے فائل فارمیٹس ایک مقررہ بائٹ پیٹرن سے شروع ہوتے ہیں، جسے اکثر signature یا magic number کہا جاتا ہے۔ پروگرام اس پیٹرن کو پڑھ کر جانتے ہیں کہ یہ کس قسم کی فائل ہے۔
میٹا ڈیٹا رپورٹ میں، Raw Header فیلڈ یہ بائٹس ہیکس ڈیسیمل نمبروں کے طور پر دکھاتی ہے۔ ہر جوڑا حروف، جیسے 89 یا FF، 1 بائٹ کے برابر ہوتا ہے۔
ای میل میں بھی اوپر ہیڈر سیکشن ہوتا ہے، جس میں From، To اور Subject جیسے فیلڈ شامل ہوتے ہیں۔ یہ مضمون فائل کے ہیڈر پر بات کرتا ہے۔
یہ ویلیو کیسی نظر آتی ہے
ہیکس ڈیسیمل یا base 16 میں ہر بائٹ کو 2 حروف کے طور پر لکھا جاتا ہے، جو ہندسوں 0 سے 9 اور حروف A سے F پر مشتمل ہوتے ہیں۔ اس طرح ایک بائٹ کی ویلیو 00 سے FF تک کچھ بھی ہو سکتی ہے۔
ASCII کریکٹر کوڈ میں 21 سے 7E تک کی ویلیوز حروف، ہندسوں اور رموزِ اوقاف کے لیے ہوتی ہیں، اور 20 خالی جگہ (space) ہے۔ 20 سے کم ویلیوز کنٹرول کوڈز ہوتی ہیں، اور 00 ایک مکمل صفر کریکٹر ہے جسے NUL کہا جاتا ہے۔
خام ہیڈر کو متن کے طور پر کیسے پڑھیں
خام ہیڈر کو متن میں تبدیل کرنے کے لیے، ہر بائٹ کو ASCII ٹیبل میں تلاش کریں۔ صرف 20 سے 7E تک بائٹس ایک نظر آنے والے ASCII کریکٹر یا خالی جگہ کے لیے ہوتی ہیں۔ دیگر بائٹس ایسا نہیں کرتیں، اس لیے اکثر آپ ہیڈر کا صرف کچھ حصہ ہی پڑھ پاتے ہیں۔
25 50 44 46 2Dکا مطلب ہے percent کا نشان، حروف PDF، اور ایک hyphen۔89 50 4E 47میں بائٹس 2 سے 4 تک حروفPNGہوتے ہیں۔
عام اقدار
عام فارمیٹس ان signatures سے شروع ہوتے ہیں:
- 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 تصویر، little-endian:
49 49 2A 00(II، پھر نمبر 42) - TIFF تصویر، big-endian:
4D 4D 00 2A(MM، پھر نمبر 42) - ZIP آرکائیو، اور ZIP پر مبنی Office فائلیں جیسے DOCX:
50 4B 03 04(PK) - MP3 آڈیو جس میں ID3v2 ٹَیگ ہو:
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 بائٹس فائل کے نمبروں کے لیے byte order بھی مقرر کرتی ہیں۔ PDF فائل میں signature کے بعد آنے والے حروف PDF ورژن بتاتے ہیں، لیکن فائل میں بعد میں آنے والی ایک اینٹری اسے اوور رائیڈ کر سکتی ہے۔
کون سی فائلیں اسے رکھتی ہیں
ہر فائل کا ایک خام ہیڈر ہوتا ہے، لیکن ہر فارمیٹ میں signature نہیں ہوتا۔ سادہ متن والی فائلیں براہِ راست اپنے متن سے شروع ہوتی ہیں۔ پروگرام انہیں اس لیے پہچانتے ہیں کہ ان کی ابتدائی بائٹس میں صرف text کریکٹر ہوتے ہیں۔
یہ کیوں اہم ہے
فائل نام کا ایکسٹینشن صرف نام کا حصہ ہوتا ہے، اور کوئی بھی اسے بدل سکتا ہے۔ ہیڈر اصلی فائل ٹائپ اور MIME ٹائپ ظاہر کر سکتا ہے، چاہے ایکسٹینشن غلط ہو۔
ویب سرور MIME ٹائپ بھیج ہی نہ سکے، یا براؤزر کو لگے کہ جو ٹائپ ملی ہے وہ غلط ہے۔ پھر براؤزر ابتدائی بائٹس کو معروف پیٹرنز کی جدول سے ملا سکتا ہے۔ Unix کا file کمانڈ فائل کے آغاز کے قریب magic number تلاش کرتا ہے۔
ہیڈر مسائل پہچاننے میں بھی مدد دیتا ہے۔ اگر photo.png نامی فائل 89 50 4E 47 سے شروع نہیں ہوتی، تو وہ PNG فارمیٹ کے مطابق نہیں ہے۔ فائل کا آغاز خراب ہو سکتا ہے، یا فائل کسی اور قسم کی ہو سکتی ہے جس پر غلط ایکسٹینشن لگا ہو۔
صرف 00 بائٹس پر مشتمل ہیڈر کسی معروف signature سے نہیں ملتا۔ لیکن MP4 فائل 00 سے شروع ہو سکتی ہے، کیونکہ اس کی پہلی 4 بائٹس میں چھوٹا سائز صفر سے شروع ہوتا ہے۔ جب کچھ بھی میل نہ کھائے اور بائٹس متن نہ ہوں، تو براؤزر فائل کو application/octet-stream کے طور پر ٹریٹ کرتے ہیں۔