JavaRush /جاوا بلاگ /Random-SD /حصو 3. HTTP/HTTPS پروٽوڪول

حصو 3. HTTP/HTTPS پروٽوڪول

گروپ ۾ شايع ٿيل
هي مواد "انٽرپرائز ڊولپمينٽ جو تعارف" سيريز جو حصو آهي. اڳيون مضمون: سلام! اڄ اسان سمجھنداسين HTTP ۽ HTTPS پروٽوڪول. پر پهرين، اچو ته هڪ نقطو واضح ڪريون: اسان OSI ماڊل جي ايپليڪيشن پرت تي نيٽ ورڪ تي ڊيٽا جي منتقلي پروٽوڪول بابت ڳالهائي رهيا آهيون. جيئن توهان کي ياد آهي، اسان گذريل مضمونن مان هڪ ۾ OSI ماڊل تي بحث ڪيو. ۽ جيڪڏهن توهان کي ياد نه آهي، اهو هتي آهي . حصو 3. HTTP/HTTPS پروٽوڪول - 1

ڊيٽا جي منتقلي پروٽوڪول ڇا آهي

اهو نالو عام طور تي قبول ٿيل معاهدي کي ڏنو ويو آهي، جنهن جي مهرباني، مختلف خدمتن جا ڊولپر هڪ واحد فارم ۾ معلومات موڪليندا آهن. مثال طور، گوگل ڪروم استعمال ڪندي، توهان Facebook ۽ Twitter ٻنهي کان معلومات حاصل ڪري سگهو ٿا، ڇاڪاڻ ته ڊولپرز ان کي معياري HTTP پروٽوڪول استعمال ڪندي منتقل ڪندا آهن، ۽ توهان جو برائوزر ان تي عمل ڪري سگهي ٿو. يونيفارم ضابطا پڻ تمام آسان آهن سرور-سائڊ ڊولپرز پاڻ لاءِ: ڪيتريون ئي لائبريريون آهن جيڪي توهان جي لاءِ معلومات کي تبديل ڪري سگهن ٿيون ۽ گهربل پروٽوڪول استعمال ڪندي موڪلي سگهن ٿيون. HTTP اصل ۾ HTML صفحن جي منتقلي لاءِ پروٽوڪول طور تصور ڪيو ويو. اهو معاملو هڪ ڊگهي وقت تائين هو، پر هاڻي پروگرامر اڪثر ان تي ٻنهي اسٽرنگ ۽ ميڊيا فائلن کي منتقل ڪري ٿو. مجموعي طور تي، هي پروٽوڪول ورسٽائل ۽ لچڪدار آهي، ۽ اهو استعمال ڪرڻ بلڪل آسان آهي. هاڻي اچو ته سمجهون ته اهو ڪيئن ڪجي.

HTTP جوڙجڪ

اهو فوري طور تي نوٽ ڪرڻ جي قابل آهي ته HTTP پروٽوڪول صرف متن تي مشتمل آهي. خير، اسان کي تمام گهڻي دلچسپي آهي ساخت ۾ جنهن ۾ هي متن واقع آهي. هر پيغام ٽن حصن تي مشتمل آهي:
  1. شروعاتي لائن - خدمت ڊيٽا کي بيان ڪري ٿو.
  2. هيڊرز - پيغام جي پيراگراف جي وضاحت.
  3. پيغام جو جسم (جسم) - پيغام ڊيٽا. خالي لڪير ذريعي عنوانن کان الڳ ٿيڻ گھرجي.
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 - ڊيٽا جي منتقلي پروٽوڪول جو نسخو.
پوءِ اچو ته عنوان:
  • ميزبان - ميزبان جنهن کي درخواست ڪئي وئي آهي؛
  • يوزر-ايجنٽ ڪلائنٽ آهي جيڪو درخواست موڪلي ٿو.
ڪوبه پيغام جسم نه آهي. هڪ HTTP درخواست ۾، صرف شروعاتي لائن ۽ ميزبان هيڊر گهربل آهن. هاڻي اچو ته هر شي کي ترتيب ۾ ڏسو. هڪ HTTP درخواست ۾ ڪجهه طريقو هجڻ گهرجي. انھن مان ڪل نو آھن: GET, POST, PUT, OPTIONS, HEAD, PATCH, DELETE, TRACE, Connect. سڀ کان وڌيڪ عام آهن GET ۽ پوسٽ. اهي ٻه طريقا پهرين تي ڪافي هوندا. GET - سرور کان مواد جي درخواست ڪري ٿو. تنهن ڪري، GET طريقي سان درخواستن ۾ پيغام جو جسم نه آهي. پر جيڪڏهن ضروري هجي ته، توهان هن فارميٽ ۾ رستي ذريعي پيٽرول موڪلي سگهو ٿا: https://cdn.javarush.com/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2 هتي: .com - ميزبان، / موڪليو - درخواست جو رستو، ؟ - هڪ جدا ڪندڙ اشارو ڪري ٿو ته درخواست جي پيراگراف جي پيروي ڪريو. آخر ۾، پيرا ميٽرز ڪيئي = قدر جي شڪل ۾ درج ٿيل آھن، ھڪڙي ايمپرسينڊ سان الڳ ٿيل آھن. پوسٽ - سرور تي معلومات شايع ڪري ٿي. پوسٽ جي درخواست مختلف معلومات کي منتقل ڪري سگھي ٿي: ڪي = قدر جي شڪل ۾، JSON، HTML ڪوڊ، يا اڃا به فائلون. سموري معلومات پيغام جي جسم ۾ منتقل ڪئي وئي آهي. مثال طور:
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 پروٽوڪول جي مخصوص ورزن کي سپورٽ نٿو ڪري.
جوابي اسٽيٽس ڪوڊ جي اضافي ۾، هڪ اسٽيٽس وضاحت پڻ موڪلي وئي آهي، ان کي سمجھڻ لاءِ هڪ خاص حيثيت جو مطلب ڇا آهي. HTTP پروٽوڪول تمام گهڻو عملي آهي: اهو وڏي تعداد ۾ هيڊر مهيا ڪري ٿو، جنهن کي استعمال ڪندي توهان ڪلائنٽ ۽ سرور جي وچ ۾ لچڪدار ڪميونيڪيشن قائم ڪري سگهو ٿا. سڀني درخواستن ۽ جوابن جا هيڊر، درخواست جا طريقا ۽ جوابي ڪيفيت جا ڪوڊ هڪ مضمون ۾ سمجهي نٿا سگهجن. جيڪڏهن ضروري هجي ته، توهان پڙهي سگهو ٿا سرڪاري پروٽوڪول وضاحتون ، جيڪو بيان ڪري ٿو سڀني nuances. HTTP پروٽوڪول عام طور تي بندرگاهن 80 تي استعمال ڪيو ويندو آهي، تنهنڪري جڏهن توهان هڪ پتو ڏسندا آهيو جيڪو بندرگاهه 80 تي ختم ٿئي ٿو، توهان پڪ ڪري سگهو ٿا ته اهو HTTP ذريعي پهچڻ گهرجي. ٽيڪنالاجي جي ترقي ۽ انٽرنيٽ تي ذاتي ڊيٽا جي فعال حرڪت سان، اسان کي اهو سوچڻو پوندو ته ڪئين معلومات لاء اضافي تحفظ فراهم ڪري ٿي جيڪا ڪلائنٽ سرور ڏانهن منتقل ڪري ٿي. نتيجو هو HTTPS پروٽوڪول.

HTTPS ۽ HTTP جي وچ ۾ ڇا فرق آهي

HTTPS مصنوعي طور تي HTTP پروٽوڪول جي هڪجهڙائي آهي، اهو آهي، اهو ساڳيو شروعاتي لائينون ۽ هيڊر استعمال ڪري ٿو. صرف اختلاف آهن اضافي انڪرپشن ۽ ڊفالٽ پورٽ (443) . HTTPS HTTP ۽ TCP جي وچ ۾ انڪوڊ ٿيل آهي، اهو آهي، ايپليڪيشن ۽ ٽرانسپورٽ پرت جي وچ ۾. جيڪڏهن توهان وساريو ته اهو ڇا آهي، او ايس آئي ماڊل بابت آرٽيڪل تي هڪ نظر وٺو . جديد انڪرپشن معيار TLS آهي. اسان هن موضوع ۾ تمام گهڻي اونهائي نه وينداسين، پر ياد رکو ته معلومات ٽرانسپورٽ جي پرت تائين پهچڻ کان اڳ انڪريپشن ٿيندي آهي . HTTPS مڪمل طور تي سڀني معلومات کي انڪرپٽ ڪري ٿو سواءِ ميزبان ۽ بندرگاهه جنهن ڏانهن درخواست موڪلي وئي آهي. HTTP جي بدران HTTPS پروٽوڪول استعمال ڪرڻ لاء سرور کي تبديل ڪرڻ لاء، اسان کي سرور ڪوڊ تبديل ڪرڻ جي ضرورت ناهي. هي خصوصيت servlet ڪنٽينرز ۾ فعال ڪئي وئي آهي، جنهن بابت اسين ايندڙ مضمونن ۾ ڳالهائينداسين. اهو سڀ ڪجهه اڄ لاءِ آهي. بهرحال، انتظار ڪريو. HTTP درخواستن کي محسوس ڪرڻ لاء، گوگل ڪروم کوليو، F12 کي دٻايو، نيٽورڪ ٽيب چونڊيو. سڀ درخواستون ۽ جواب موڪليا ويا/ وصول ڪيا ويندا توھان جي برائوزر طرفان. حصو 4. مايون بنياديات حصو 5. سروليٽس. هڪ سادي ويب ايپليڪيشن لکڻ حصو 6. سروليٽ ڪنٽينرز حصو 7. متعارف ڪرائڻ MVC (ماڊل-ويو-ڪنٽرولر) نمونو حصو 8. هڪ ننڍڙي اسپرنگ بوٽ ايپليڪيشن لکڻ
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION