CodeGym /جاوا بلاگ /Random-SD /حصو 3. HTTP/HTTPS
John Squirrels
سطح
San Francisco

حصو 3. HTTP/HTTPS

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

ڊيٽا ڪميونيڪيشن پروٽوڪول ڇا آهي؟

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

HTTP جي جوڙجڪ

اسان کي فوري طور تي نوٽ ڪرڻ گهرجي ته HTTP پروٽوڪول صرف متن تي مشتمل آهي. اسان کي سڀ کان وڌيڪ دلچسپي جيڪا هن متن جي جوڙجڪ آهي. هر پيغام ٽن حصن تي مشتمل آهي:
  1. شروع لائن - هي وضاحت ڪري ٿو ڪجهه هائوس ڪيپنگ ڊيٽا.
  2. هيڊرز - اهي پيغام جي پيراگراف کي بيان ڪن ٿا.
  3. جسم - هي پيغام جو مواد آهي. جسم کي هيڊرن کان خالي لڪير سان الڳ ڪيو وڃي.
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 - پروٽوڪول ورزن
پوءِ هيڊر اچن ٿا:
  • ميزبان - ميزبان جنهن کي درخواست ڪئي وئي آهي
  • User-Agent - ڪلائنٽ جيڪو درخواست موڪلي ٿو
پيغام جو جسم غائب آهي. هڪ HTTP درخواست ۾، صرف شروعاتي لائن ۽ "ميزبان" هيڊر گهربل آهي. ھاڻي اچو ته ھڪڙي وقت ۾ ھڪڙي قدم تي سڀڪنھن شيء کي ڏسو. هڪ HTTP درخواست ۾ ڪجهه طريقو هجڻ گهرجي. انهن مان نو آهن: GET، POST، PUT، OPTIONS، HEAD، PATCH، DELETE، TRACE، Connect. سڀ کان وڌيڪ عام آهن GET ۽ پوسٽ. اهي ٻه طريقا پهرين تي ڪافي هوندا. GET - هي طريقو سرور کان مواد جي درخواست ڪري ٿو. انهي جي مطابق، GET طريقي سان درخواستن ۾ پيغام جو جسم نه آهي. پر جيڪڏھن توھان کي ضرورت آھي، توھان ھيٺ ڏنل شڪل ۾ رستي ذريعي (شروعاتي لائن ۾) پيرا ميٽر پاس ڪري سگھو ٿا:

https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
جتي codegym.cc ميزبان آهي، /send درخواست جو رستو آهي، ۽ ؟ ھڪڙو جدا ڪندڙ آھي جيڪو اشارو ڪري ٿو ته سوال جي پيراگراف جي پيروي ڪندا آھن. آخر ۾، ڪيئي-قدر جوڙو ("key=value") درج ٿيل آهن، هڪ ايمپرسينڊ سان الڳ ٿيل آهن. پوسٽ - هي طريقو سرور تي معلومات شايع ڪري ٿو. پوسٽ درخواست موڪلي سگھي ٿي مختلف قسم جي معلومات: پيٽرولر جيئن "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 آهي. "قبول ڪريو" ظاهر ڪري ٿو جوابي فارميٽ جيڪو ڪلائنٽ وصول ڪرڻ جي اميد رکي ٿو. "Content-Type" ظاھر ڪري ٿو نياپو جي جسم جي فارميٽ کي درخواست ۾ موڪليو ويو. "Content-Length" جسم ۾ اکرن جو تعداد آھي. هڪ 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 پروٽوڪول جي مخصوص ورزن کي سپورٽ نٿو ڪري.
جوابي اسٽيٽس ڪوڊ جي علاوه، هڪ اسٽيٽس وضاحت پڻ موڪلي وئي آهي. اهو واضح ڪرڻ ۾ مدد ڪري ٿو ته هر مخصوص حيثيت جو مطلب ڇا آهي. HTTP پروٽوڪول تمام گهڻو عملي آهي: اهو وڏي تعداد ۾ هيڊر مهيا ڪري ٿو، جنهن کي توهان ڪلائنٽ ۽ سرور جي وچ ۾ تمام لچڪدار رابطي کي ترتيب ڏيڻ لاءِ استعمال ڪري سگهو ٿا. سڀني درخواستن ۽ جوابن جي مٿاڇري تي مڪمل غور، درخواست جي طريقن، ۽ جوابي اسٽيٽس ڪوڊس ھڪڙو مضمون لاء تمام گھڻو ٿيندو. جيڪڏھن توھان کي ضرورت آھي، توھان پڙھي سگھوٿا پروٽوڪول جي سرڪاري وضاحت ، جيڪو بيان ڪري ٿو سڀني nuances. اھو رواج آھي HTTP پروٽوڪول کي پورٽ 80 تي استعمال ڪرڻ لاءِ، تنھنڪري جڏھن توھان ڏسندا ھڪڙو URL جيڪو پورٽ 80 سان ختم ٿئي ٿو، توھان يقين ڪري سگھوٿا ته توھان کي HTTP استعمال ڪرڻ جي ضرورت آھي ان کي پھچائڻ لاءِ. جيئن ٽيڪنالاجي ترقي ڪئي ۽ ذاتي ڊيٽا انٽرنيٽ تي موڪلڻ شروع ڪيو، اهو سوچڻ ضروري ٿي ويو ته معلومات لاء اضافي تحفظ ڪيئن مهيا ڪجي جيڪا ڪلائنٽ سرور ڏانهن موڪلي ٿو. هن سوچ جو نتيجو هو HTTPS پروٽوڪول.

HTTPS ۽ HTTP جي وچ ۾ فرق

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