ही सामग्री "एंटरप्राइज डेव्हलपमेंटची ओळख" मालिकेचा भाग आहे. मागील लेख: भाग 3. HTTP/HTTPS - 1हाय! आज आपण HTTP आणि HTTPS प्रोटोकॉलबद्दल जाणून घेणार आहोत. परंतु प्रथम, एक मुद्दा स्पष्ट करूया: आम्ही OSI मॉडेलच्या ऍप्लिकेशन स्तरावर नेटवर्कवर डेटा पाठवण्यासाठी प्रोटोकॉलबद्दल बोलत आहोत. तुम्हाला आठवत असेल की मागील लेखांपैकी एका लेखात आम्हाला OSI मॉडेलची माहिती मिळाली होती. जर तुम्हाला ते आठवत नसेल, तर ते येथे आहे .

डेटा कम्युनिकेशन प्रोटोकॉल म्हणजे काय?

याला आम्ही नियमांचा सहमती संच म्हणतो जे विविध सेवांच्या विकासकांना इतरांना समजेल अशा स्वरूपात माहिती पाठवण्याची परवानगी देतात. उदाहरणार्थ, तुम्ही Facebook आणि Twitter या दोन्हींकडून माहिती मिळवण्यासाठी Google Chrome वापरू शकता, कारण डेव्हलपर ते मानक HTTP प्रोटोकॉल वापरून पाठवतात, जे तुमच्या ब्राउझरवर प्रक्रिया करू देतात. सर्व्हरचा भाग विकसित करणार्‍या लोकांसाठी एकसमान नियम अतिशय सोयीस्कर आहेत: अशी बरीच लायब्ररी आहेत जी तुमच्यासाठी माहिती रूपांतरित करू शकतात आणि योग्य प्रोटोकॉल वापरून पाठवू शकतात. एचटीटीपीची सुरुवात एचटीएमएल पेजेस पाठवण्यासाठी प्रोटोकॉल म्हणून करण्यात आली होती. बर्याच काळापासून ते असेच वापरले जात होते, परंतु आता प्रोग्रामर बहुतेकदा स्ट्रिंग आणि मीडिया फाइल्स दोन्ही पाठवण्यासाठी वापरतात. सर्वसाधारणपणे, हा प्रोटोकॉल सर्वत्र स्वीकृत आणि बहुमुखी आहे आणि तो वापरणे खरोखर सोपे आहे. आणि आता आम्ही ते कसे वापरायचे ते तपासू.

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)
प्रारंभ ओळ सूचित करते:
  • GET — विनंतीची पद्धत
  • / — विनंतीचा मार्ग
  • HTTP/1.1 — प्रोटोकॉल आवृत्ती
मग शीर्षलेख या:
  • होस्ट - ज्या होस्टला विनंती संबोधित केली जाते
  • वापरकर्ता-एजंट - विनंती पाठवणारा क्लायंट
संदेशाचा मुख्य भाग गहाळ आहे. HTTP विनंतीमध्ये, फक्त प्रारंभ ओळ आणि "होस्ट" शीर्षलेख आवश्यक आहे. आता प्रत्येक गोष्ट एका वेळी एक पाऊल पाहू. HTTP विनंतीमध्ये काही पद्धत असणे आवश्यक आहे. त्यापैकी नऊ आहेत: GET, POST, PUT, OPTIONS, HEAD, PATCH, DELETE, TRACE, Connect. सर्वात सामान्य GET आणि POST आहेत. या दोन पद्धती सुरुवातीला पुरेसे असतील. GET — ही पद्धत सर्व्हरकडून सामग्रीची विनंती करते. त्यानुसार, GET पद्धतीच्या विनंत्यांना संदेशाचा मुख्य भाग नाही. परंतु आपल्याला आवश्यक असल्यास, आपण खालील स्वरूपात पॅरामीटर्स पथ (प्रारंभ ओळीत) पास करू शकता:

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 ओके - विनंती प्राप्त झाली आणि यशस्वीरित्या प्रक्रिया केली गेली.
  • 201 तयार केले - विनंती प्राप्त झाली आणि यशस्वीरित्या प्रक्रिया केली गेली, परिणामी नवीन संसाधन किंवा उदाहरण तयार केले गेले.
  • 301 कायमचे हलवले - विनंती केलेले संसाधन कायमचे हलवले गेले. त्यानंतरच्या विनंत्या नवीन पत्ता वापरून केल्या पाहिजेत.
  • 307 तात्पुरते पुनर्निर्देशन - संसाधन तात्पुरते हलविले गेले आहे. आत्तासाठी, स्वयंचलित फॉरवर्डिंग वापरून त्यात प्रवेश केला जाऊ शकतो.
  • 403 निषिद्ध — विनंती समजली होती, परंतु अधिकृतता आवश्यक आहे.
  • 404 सापडले नाही — सर्व्हरला या पत्त्यावर संसाधन सापडले नाही.
  • 501 अंमलबजावणी नाही — सर्व्हर विनंतीला प्रतिसाद देण्यासाठी आवश्यक कार्यक्षमतेला समर्थन देत नाही.
  • 505 HTTP आवृत्ती समर्थित नाही — सर्व्हर HTTP प्रोटोकॉलच्या निर्दिष्ट आवृत्तीस समर्थन देत नाही.
प्रतिसाद स्थिती कोड व्यतिरिक्त, स्थितीचे वर्णन देखील पाठवले जाते. हे प्रत्येक विशिष्ट स्थितीचा अर्थ काय आहे हे स्पष्ट करण्यात मदत करते. HTTP प्रोटोकॉल अतिशय व्यावहारिक आहे: ते मोठ्या संख्येने शीर्षलेख प्रदान करते, ज्याचा वापर तुम्ही क्लायंट आणि सर्व्हर यांच्यातील अतिशय लवचिक संवादाची व्यवस्था करण्यासाठी करू शकता. सर्व विनंती आणि प्रतिसाद शीर्षलेख, विनंती पद्धती आणि प्रतिसाद स्थिती कोड यांचा संपूर्ण विचार करणे एका लेखासाठी खूप जास्त असेल. तुम्हाला आवश्यक असल्यास, तुम्ही प्रोटोकॉलचे अधिकृत तपशील वाचू शकता, जे सर्व बारकावे वर्णन करते. पोर्ट 80 वर HTTP प्रोटोकॉल वापरण्याची प्रथा आहे, म्हणून जेव्हा तुम्हाला पोर्ट 80 ने समाप्त होणारी URL दिसेल, तेव्हा तुम्ही खात्री बाळगू शकता की तुम्हाला त्यात प्रवेश करण्यासाठी HTTP वापरण्याची आवश्यकता आहे. जसजसे तंत्रज्ञान विकसित झाले आणि वैयक्तिक डेटा इंटरनेटवर पाठविला जाऊ लागला, क्लायंटने सर्व्हरला पाठवलेल्या माहितीसाठी अतिरिक्त संरक्षण कसे प्रदान करावे याबद्दल विचार करणे आवश्यक आहे. या विचाराचा परिणाम HTTPS प्रोटोकॉल होता.

HTTPS आणि HTTP मधील फरक

सिंटॅक्सच्या बाबतीत, HTTPS हे HTTP प्रोटोकॉलसारखेच आहे. म्हणजेच, ते समान प्रारंभ ओळी आणि शीर्षलेख वापरते. फरक फक्त अतिरिक्त एन्क्रिप्शन आणि डीफॉल्ट पोर्ट (443) आहेत . HTTPS हे HTTP आणि TCP दरम्यान, म्हणजेच ऍप्लिकेशन आणि ट्रान्सपोर्ट लेयर्स दरम्यान एन्क्रिप्ट केलेले आहे. याचा अर्थ काय ते विसरले असल्यास, OSI मॉडेलवरील लेख पहा . आजचे एन्क्रिप्शन मानक TLS आहे. आम्ही या विषयात जास्त जाणार नाही, परंतु लक्षात ठेवा की माहिती वाहतूक स्तरावर पोहोचण्यापूर्वी एन्क्रिप्शन होते. HTTPS मध्ये, विनंती पाठवलेली होस्ट आणि पोर्ट वगळता, पूर्णपणे सर्व माहिती कूटबद्ध केली जाते. HTTP ऐवजी HTTPS प्रोटोकॉल वापरण्यासाठी सर्व्हर स्विच करणे, सर्व्हर कोड बदलण्यासाठी वापरण्याची आवश्यकता नाही. हे वैशिष्ट्य सर्वलेट कंटेनरमध्ये सक्षम केले आहे, ज्याची आपण पुढील लेखांमध्ये चर्चा करू. आणि आजसाठी एवढेच. खरं तर, थोडा वेळ थांबा. काही HTTP विनंत्यांवर आपले हात मिळवण्यासाठी, Google Chrome उघडा, F12 दाबा आणि "नेटवर्क" टॅब निवडा. तुमच्या ब्राउझरद्वारे पाठवलेल्या/प्राप्त केलेल्या सर्व विनंत्या आणि प्रतिसाद येथे प्रदर्शित केले जातील. भाग 4. मावेन भाग 5 ची मूलभूत माहिती. सर्व्हलेट्स आणि Java सर्व्हलेट API. एक साधा वेब ऍप्लिकेशन लिहिणे भाग 6. सर्व्हलेट कंटेनर भाग 7. MVC (मॉडेल-व्ह्यू-कंट्रोलर) नमुना सादर करत आहे