معروف ایچ ٹی ٹی پی اسٹیٹس کوڈز کونسے ہیں اور ان کا کیا مطلب ہے؟

HTTP یعنی Hypertext Transfer Protocol ورلڈ وائیڈ ویب کی بنیاد ہے۔ جب ہم کوئی ویب سائیٹ کھولتے ہیں یا ویب سائیٹ کے اندر کسی لنک پر کلک کرتے ہیں تو ہم دراصل انٹرنیٹ سے منسلک کسی کمپیوٹر (Web Server) سے کوئی چیز طلب کرنے کے لیے درخواست کر رہے ہوتے ہیں۔ یہ چیز جس کی ہم ویب سرور سے درخواست کرتے ہیں، یہ ویب پیج، تصویر، آڈیو، ویڈیو، پی ڈی ایف یا پھر کسی اور فارمیٹ کی فائل کی صورت میں ہو سکتی ہے۔ ویب سرور یہ درخواست وصول کر کے صورت حال کے مطابق یا تو وہ چیز ہمیں مہیا کر دیتا ہے یا پھر کسی وجہ سے ہماری درخواست مسترد کر دیتا ہے۔ دونوں صورتوں میں ویب سرور ایک کوڈ کی شکل میں اس درخواست کا جواب ضرور دیتا ہے۔ اس کوڈ کا ایک خاص مطلب ہوتا ہے۔

ہم یہاں ایسے معروف کوڈز (HTTP status codes) کا مطلب سمجھنے کی کوشش کریں گے جو ویب سرور ہماری درخواست کے جواب میں بھیجتا ہے۔ اس سے ہمیں یہ سمجھنے میں مدد ملتی ہے کہ ویب سرور نے ہماری درخواست کے ساتھ کیا سلوک کیا ہے۔ اس نے ہماری درخواست قبول کی ہے یا نہیں، اگر نہیں کی تو اس کی وجہ اس نے کیا بتائی ہے۔

عام صارفین جو مختلف ویب سائیٹس دیکھتے ہیں، انہیں عموماً‌ 404 کوڈ کے علاوہ کسی کوڈ سے کچھ خاص غرض نہیں ہوتی۔ لیکن پروگرامرز اور ڈدیویلپرز کے لیے دیگر کوڈز بھی خاص اہمیت کے حامل ہوتے ہیں، اس لیے کہ وہ انہی کوڈز کی بنیاد پر اپنے سافٹ ویئرز میں یہ فیصلے کرتے ہیں کہ کونسا کوڈ موصول ہونے پر ان کا سافٹ ویئر کیا راستہ اختیار کرے گا۔ آئیں مختصر طور پر ان کوڈز کی وضاحت دیکھتے ہیں:

200 (OK)

سرور نے آپ کی درخواست قبول کر لی ہے اور مطلوبہ مواد آپ کو بھیج دیا ہے۔

300 (Multiple Choices)

جس چیز کی آپ نے ویب سرور سے درخواست کی ہے وہ ایک سے زیادہ شکلوں میں موجود ہے۔ ہو سکتا ہے آپ نے ایسی ویڈیو کی درخواست کی ہے جو سرور کے پاس ایک سے زیادہ فارمیٹس میں میسر ہے۔

301 (Moved Permanently)

جس چیز کی درخواست کی گئی ہے اس کا پتہ (URI) یعنی Uniform Resource Identifier تبدیل ہوگیا ہے۔ نیا پتہ سرور کی طرف سے مہیا کیا جا رہا ہے، مستقبل میں ساری درخواستیں اسی نئے ایڈریس پر بھیجی جائیں۔

302 (Found)

جس چیز کے لیے درخواست کی گئی ہے اس کا پتہ عارضی طور پر تبدیل ہوگیا ہے لیکن درخواست بھیجنے والا مستقبل میں اسی اصل پتے پر درخواست بھیجے جس پر ابھی بھیجی گئی ہے۔

304 (Not Modified)

مثال کے طور پر ویب براؤزر نے ویب سرور سے کسی ایسی فائل کی درخواست کی ہے جس کی ایک نقل ویب براؤزر کے پاس پہلے سے موجود ہے جو اس نے پہلے کسی وقت ڈاؤن لوڈ کی تھی۔ ویب سرور اپنے پاس موجود فائل دیکھ کر 302 کوڈ بھیجتا ہے کہ بھئی میرے پاس بھی بالکل وہی فائل ہے جو آپ کے پاس موجود ہے، جب سے یہ فائل ڈاؤن لوڈ کی گئی ہے اس کے بعد سے اس میں کوئی تبدیلی نہیں ہوئی، اس لیے میں یہ فائل دوبارہ نہیں بھیج رہا۔ چنانچہ ویب براؤزر پھر وہ فائل اپنی کیش سے استعمال کرتا ہے۔

307 (Temporary Redirect)

مطلوبہ چیز کا پتہ عارضی طور پر تبدیل کیا گیا ہے، فی الحال آپ سرور کی جانب سے بھیجے گئے تبدیل شدہ پتے پر درخواست بھیجیں، لیکن مستقبل میں اصل پتہ پر ہی درخواست بھیجی جائے جس پر اب بھیجی گئی ہے۔

400 (Bad Request)

درخواست جو بھیجی گئی ہے اس کی نحو (Syntax) غلط ہے، سرور اس درخواست کو سمجھ نہیں سکا، اس لیے درخواست تبدیل (درست) کیے بغیر مت بھیجی جائے۔

401 (Unauthorized)

جس چیز کی درخواست بھیجی گئی ہے اس کے لیے تصدیق (Authentication) چاہیے۔ اس کے بغیر سرور وہ چیز مہیا نہیں کرے گا۔

403 (Forbidden)

جس چیز کی درخواست کی گئی ہے اسے حاصل کرنا بالکل ممنوع ہے۔ اس کا حاصل کرنا تصدیق (Authentication) کے ذریعہ بھی ممکن نہیں، اس لیے یہ درخواست دوبارہ مت بھیجی جائے۔

404 (Not Found)

جس چیز کی درخواست کی گئی ہے وہ سرور کے پاس اس وقت دستیاب نہیں ہے۔

410 (Gone)

جس چیز کی درخواست کی گئی ہے وہ سرور کے پاس اب موجود نہیں رہی، اور نہ ہی سرور کے پاس اس کا نیا پتہ موجود ہے۔

500 (Internal Server Error)

بھیجی گئی درخواست سے سرور کو غیر متوقع صورت حال کا سامنا کرنا پڑا ہے جس کی وجہ سے سرور یہ درخواست قبول کرنے سے قاصر ہے۔

501 (Not Implemented)

وہ تکنیک (Functionality) جو بھیجی گئی درخواست کو پورا کرنے کے لیے درکار ہے، ویب سرور اسے سپورٹ نہیں کرتا۔

503 (Service Unavailable)

سرور اس وقت درخواست قبول کرنے سے قاصر ہے۔ اس کی وجہ کچھ بھی ہو سکتی ہے، مثلاً

  • سرور کریش ہوگیا ہے۔
  • سرور کی دیکھ بھال (Maintenance) کی جا رہی ہے۔
  • سرور پر اس وقت کام کا بہت زیادہ بوجھ ہے۔
  • سرور کسی وائرس وغیرہ کے حملے کی زد میں ہے۔
  • کسی ویب سائیٹ نے سرور کی مواد کی ترسیل کی تمام صلاحیت (Bandwidth) استعمال کر لی ہے۔
  • یا شاید سرور کو اس بات کی اجازت نہیں ہے کہ وہ اس وقت مطلوبہ نوعیت کی درخواست قبول کرے۔

عموماً‌ یہ صورت حال عارضی ہوتی ہے۔ چونکہ آپ کو سرور کی طرف سے جواب موصول ہو رہا ہے، اس کا مطلب ہے کہ سرور کسی نہ کسی حد تک کام کر رہا ہے۔

550 (Permission Denied)

جس اکاؤنٹ کے تحت آپ نے سرور پر Log in کیا ہے، اس کے تحت آپ کو مطلوبہ چیز یا عمل کے لیے درخواست بھیجنے کی اجازت نہیں ہے۔ مثلاً‌ ہو سکتا ہے آپ کو اپنے اکاؤنٹ کے تحت باقی کاموں کی تو اجازت ہے لیکن کوئی فائل ختم کرنے کی اجازت نہیں ہے۔ اگر آپ ایسا کرنے کی کوشش کریں گے تو سرور جواباً‌ یہ کوڈ بھیجے گا۔


مزید معلومات کے لیے:
Status Code Definitions