هي مواد "انٽرپرائز ڊولپمينٽ جو تعارف" سيريز جو حصو آهي. اڳيون مضمون:
سلام! اڄ اسان سمجھنداسين HTTP ۽ HTTPS پروٽوڪول. پر پهرين، اچو ته هڪ نقطو واضح ڪريون: اسان OSI ماڊل جي ايپليڪيشن پرت تي نيٽ ورڪ تي ڊيٽا جي منتقلي پروٽوڪول بابت ڳالهائي رهيا آهيون. جيئن توهان کي ياد آهي، اسان گذريل مضمونن مان هڪ ۾ OSI ماڊل تي بحث ڪيو. ۽ جيڪڏهن توهان کي ياد نه آهي، اهو هتي آهي .
اهو فوري طور تي نوٽ ڪرڻ جي قابل آهي ته HTTP پروٽوڪول صرف متن تي مشتمل آهي. خير، اسان کي تمام گهڻي دلچسپي آهي ساخت ۾ جنهن ۾ هي متن واقع آهي. هر پيغام ٽن حصن تي مشتمل آهي:
ڊيٽا جي منتقلي پروٽوڪول ڇا آهي
اهو نالو عام طور تي قبول ٿيل معاهدي کي ڏنو ويو آهي، جنهن جي مهرباني، مختلف خدمتن جا ڊولپر هڪ واحد فارم ۾ معلومات موڪليندا آهن. مثال طور، گوگل ڪروم استعمال ڪندي، توهان Facebook ۽ Twitter ٻنهي کان معلومات حاصل ڪري سگهو ٿا، ڇاڪاڻ ته ڊولپرز ان کي معياري HTTP پروٽوڪول استعمال ڪندي منتقل ڪندا آهن، ۽ توهان جو برائوزر ان تي عمل ڪري سگهي ٿو. يونيفارم ضابطا پڻ تمام آسان آهن سرور-سائڊ ڊولپرز پاڻ لاءِ: ڪيتريون ئي لائبريريون آهن جيڪي توهان جي لاءِ معلومات کي تبديل ڪري سگهن ٿيون ۽ گهربل پروٽوڪول استعمال ڪندي موڪلي سگهن ٿيون. HTTP اصل ۾ HTML صفحن جي منتقلي لاءِ پروٽوڪول طور تصور ڪيو ويو. اهو معاملو هڪ ڊگهي وقت تائين هو، پر هاڻي پروگرامر اڪثر ان تي ٻنهي اسٽرنگ ۽ ميڊيا فائلن کي منتقل ڪري ٿو. مجموعي طور تي، هي پروٽوڪول ورسٽائل ۽ لچڪدار آهي، ۽ اهو استعمال ڪرڻ بلڪل آسان آهي. هاڻي اچو ته سمجهون ته اهو ڪيئن ڪجي.
HTTP جوڙجڪ
اهو فوري طور تي نوٽ ڪرڻ جي قابل آهي ته HTTP پروٽوڪول صرف متن تي مشتمل آهي. خير، اسان کي تمام گهڻي دلچسپي آهي ساخت ۾ جنهن ۾ هي متن واقع آهي. هر پيغام ٽن حصن تي مشتمل آهي:
- شروعاتي لائن - خدمت ڊيٽا کي بيان ڪري ٿو.
- هيڊرز - پيغام جي پيراگراف جي وضاحت.
- پيغام جو جسم (جسم) - پيغام ڊيٽا. خالي لڪير ذريعي عنوانن کان الڳ ٿيڻ گھرجي.
ڪيئن هڪ سادي HTTP درخواست وانگر لڳندي آهي
GET / HTTP/1.1
Host: javarush.com
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
شروعاتي لائن تي مشتمل آهي:
- GET - درخواست جو طريقو؛
- / - درخواست جو رستو (رستو)؛
- HTTP/1.1 - ڊيٽا جي منتقلي پروٽوڪول جو نسخو.
- ميزبان - ميزبان جنهن کي درخواست ڪئي وئي آهي؛
- يوزر-ايجنٽ ڪلائنٽ آهي جيڪو درخواست موڪلي ٿو.
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: javarush.com
{
"Id": 12345,
"User": "John"
}
درخواست موڪلي وئي آهي javarush.com/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 نه مليو - سرور کي هن ايڊريس تي وسيلو نه مليو؛
- 501 لاڳو نه ڪيو ويو آهي - سرور هن درخواست جو جواب ڏيڻ لاء ڪارڪردگي جي حمايت نٿو ڪري.
- 505 HTTP ورزن سپورٽ نه ڪيو - سرور HTTP پروٽوڪول جي مخصوص ورزن کي سپورٽ نٿو ڪري.
GO TO FULL VERSION