یہ مواد "انٹروڈکشن ٹو انٹرپرائز ڈویلپمنٹ" سیریز کا حصہ ہے۔ پچھلے مضامین:
ہائے! آج ہم HTTP اور HTTPS پروٹوکول کے بارے میں جانیں گے۔ لیکن پہلے، آئیے ایک نکتے کو واضح کرتے ہیں: ہم OSI ماڈل کی ایپلیکیشن لیول پر نیٹ ورک پر ڈیٹا بھیجنے کے پروٹوکولز کے بارے میں بات کر رہے ہیں۔ آپ کو یاد ہوگا کہ ہمیں پچھلے مضامین میں سے ایک میں OSI ماڈل کے بارے میں معلوم ہوا تھا۔ اگر آپ کو یہ یاد نہیں ہے تو یہ یہاں ہے
۔
ڈیٹا کمیونیکیشن پروٹوکول کیا ہے؟
اسے ہم اصولوں کا متفقہ سیٹ کہتے ہیں جو مختلف سروسز کے ڈویلپرز کو معلومات کو اس فارمیٹ میں بھیجنے کی اجازت دیتا ہے جسے دوسرے سمجھ سکیں۔ مثال کے طور پر، آپ فیس بک اور ٹویٹر دونوں سے معلومات حاصل کرنے کے لیے گوگل کروم کا استعمال کر سکتے ہیں، کیونکہ ڈویلپر اسے معیاری HTTP پروٹوکول کے ذریعے بھیجتے ہیں، جو آپ کے براؤزر کو اس پر کارروائی کرنے کی اجازت دیتا ہے۔ سرور کے حصے کو تیار کرنے والے لوگوں کے لیے یکساں اصول بہت آسان ہیں: بہت ساری لائبریریاں ہیں جو آپ کے لیے معلومات کو تبدیل کر سکتی ہیں اور مناسب پروٹوکول کے ذریعے بھیج سکتی ہیں۔ ایچ ٹی ٹی پی کو ابتدائی طور پر ایچ ٹی ایم ایل صفحات بھیجنے کے لیے ایک پروٹوکول کے طور پر تصور کیا گیا تھا۔ اس طرح یہ ایک طویل عرصے تک استعمال کیا جاتا تھا، لیکن اب پروگرامرز اکثر اسے سٹرنگز اور میڈیا فائلز بھیجنے کے لیے استعمال کرتے ہیں۔ عام طور پر، یہ پروٹوکول عالمی طور پر قبول شدہ اور ورسٹائل ہے، اور یہ واقعی استعمال کرنا آسان ہے۔ اور اب ہم اس کو استعمال کرنے کے طریقے کی تحقیقات کریں گے۔HTTP کی ساخت
ہمیں فوراً نوٹ کرنا چاہیے کہ HTTP پروٹوکول صرف متن پر مشتمل ہوتا ہے۔ ہمیں سب سے زیادہ دلچسپی اس متن کی ساخت ہے۔ ہر پیغام تین حصوں پر مشتمل ہے:- اسٹارٹ لائن — یہ کچھ ہاؤس کیپنگ ڈیٹا کی وضاحت کرتا ہے۔
- ہیڈر - یہ پیغام کے پیرامیٹرز کی وضاحت کرتے ہیں۔
- باڈی - یہ پیغام کا مواد ہے۔ جسم کو خالی لائن کے ذریعہ ہیڈر سے الگ کیا جانا چاہئے۔
یہاں ایک سادہ HTTP درخواست کیسی دکھتی ہے:
GET / HTTP/1.1
Host: codegym.cc
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
اسٹارٹ لائن اشارہ کرتی ہے:
- حاصل کریں - درخواست کا طریقہ
- / — درخواست کا راستہ
- HTTP/1.1 - پروٹوکول ورژن
- میزبان - وہ میزبان جس سے درخواست کی جاتی ہے۔
- صارف ایجنٹ - درخواست بھیجنے والا کلائنٹ
https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
جہاں codegym.cc میزبان ہے، /send درخواست کا راستہ ہے، اور ؟ ایک الگ کرنے والا ہے جو اشارہ کرتا ہے کہ استفسار کے پیرامیٹرز کی پیروی ہوتی ہے۔ آخر میں، کلیدی قدر کے جوڑے ("key=value") درج کیے جاتے ہیں، جو ایک ایمپرسینڈ سے الگ ہوتے ہیں۔ پوسٹ - یہ طریقہ سرور پر معلومات شائع کرتا ہے۔ POST کی درخواست مختلف قسم کی معلومات بھیج سکتی ہے: پیرامیٹرز بطور "key=value" جوڑے، JSON، HTML کوڈ، یا یہاں تک کہ فائلیں۔ تمام معلومات پیغام کے باڈی میں بھیجی جاتی ہیں۔ مثال کے طور پر:
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: codegym.cc
{
"Id": 12345,
"User": "John"
}
درخواست codegym.cc/user/create/json پر بھیجی جاتی ہے، اور پروٹوکول ورژن HTTP/1.1 ہے۔ "قبول کریں" جوابی شکل کی نشاندہی کرتا ہے جس کی کلائنٹ کو توقع ہے۔ "مواد کی قسم" درخواست میں بھیجے گئے پیغام کے باڈی کی شکل کی نشاندہی کرتی ہے۔ "مواد کی لمبائی" جسم میں حروف کی تعداد ہے۔ HTTP درخواست میں بہت سے مختلف ہیڈر شامل ہو سکتے ہیں۔ مزید معلومات کے لیے، پروٹوکول کی تفصیلات
پر ایک نظر ڈالیں ۔
HTTP جوابات
درخواست موصول ہونے کے بعد، سرور اس پر کارروائی کرتا ہے اور کلائنٹ کو جواب بھیجتا ہے:HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
جواب کی شروعاتی لائن پروٹوکول ورژن (HTTP/1.1)، اسٹیٹس کوڈ (200)، اور اسٹیٹس کی تفصیل (OK) پر مشتمل ہے۔ اس کے ہیڈرز میں مواد کی قسم اور لمبائی شامل ہے۔ رسپانس باڈی میں HTML کوڈ ہوتا ہے جسے براؤزر HTML صفحہ کے طور پر پیش کرتا ہے۔
رسپانس اسٹیٹس کوڈز
پیغام کے باڈی اور ہیڈرز کے حوالے سے سب کچھ واضح ہے، لیکن ہمیں اسٹیٹس کوڈز کے بارے میں کچھ الفاظ کہنا چاہیے۔ رسپانس اسٹیٹس کوڈ ہمیشہ تین ہندسوں کے ہوتے ہیں۔ کوڈ کا پہلا ہندسہ جواب کے زمرے کی نشاندہی کرتا ہے:- 1xx - معلوماتی۔ درخواست موصول ہوئی۔ سرور جاری رکھنے کے لیے تیار ہے۔
- 2xx - کامیاب۔ درخواست موصول ہوئی، سمجھی گئی اور اس پر کارروائی کی گئی۔
- 3xx - ری ڈائریکشن۔ درخواست پر کارروائی کرنے کے لیے اضافی کارروائیاں کی جانی چاہئیں۔
- 4xx — کلائنٹ کی خرابی۔ درخواست میں غلطیاں ہیں یا پروٹوکول کی تعمیل نہیں کرتی ہیں۔
- 5xx - سرور کی خرابی۔ درخواست درست طریقے سے تیار کی گئی تھی، لیکن سرور اس پر کارروائی نہیں کر سکا۔
- 200 OK — درخواست موصول ہوئی اور کامیابی کے ساتھ اس پر کارروائی ہوئی۔
- 201 تخلیق کیا گیا - درخواست موصول ہوئی اور کامیابی کے ساتھ اس پر کارروائی کی گئی، جس کے نتیجے میں ایک نیا وسیلہ یا مثال تخلیق ہوئی۔
- 301 مستقل طور پر منتقل کر دیا گیا - درخواست کردہ وسائل کو مستقل طور پر منتقل کر دیا گیا تھا۔ اس کے بعد کی درخواستیں نئے پتہ کا استعمال کرتے ہوئے کی جانی چاہئیں۔
- 307 عارضی ری ڈائریکٹ - وسائل کو عارضی طور پر منتقل کر دیا گیا ہے۔ ابھی کے لیے، خودکار فارورڈنگ کا استعمال کرتے ہوئے اس تک رسائی حاصل کی جا سکتی ہے۔
- 403 ممنوع - درخواست سمجھ گئی تھی، لیکن اجازت درکار ہے۔
- 404 Not Found — سرور کو اس ایڈریس پر وسیلہ نہیں ملا۔
- 501 نافذ نہیں ہوا — سرور درخواست کا جواب دینے کے لیے درکار فعالیت کی حمایت نہیں کرتا ہے۔
- 505 HTTP ورژن تعاون یافتہ نہیں ہے — سرور HTTP پروٹوکول کے مخصوص ورژن کی حمایت نہیں کرتا ہے۔
GO TO FULL VERSION