ڈکشنری

فائل کا را خام ہیڈر کیا ہوتا ہے؟

را ہیڈر کسی فائل کے ابتدائی بائٹس کو ہیگزہ ڈیسمل نمبروں کی صورت میں دکھاتا ہے۔ یہ بائٹس اصل فائل ٹائپ ظاہر کرتی ہیں، اور آپ ان میں سے بہت ساری کو بطور متن پڑھ سکتے ہیں۔

raw-header

خام ہیڈر فائل کا پہلا حصہ ہوتا ہے، جو نام والے میٹا ڈیٹا فیلڈز کے بجائے بائٹ در بائٹ دکھایا جاتا ہے۔ بہت سے فائل فارمیٹس ایک مقررہ بائٹ پیٹرن سے شروع ہوتے ہیں، جسے اکثر 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 کے طور پر ٹریٹ کرتے ہیں۔

میٹا کیز