CodeGym /Java Blog /अनियमित /भाग 3. HTTP/HTTPS
John Squirrels
स्तर 41
San Francisco

भाग 3. HTTP/HTTPS

अनियमित ग्रुप में प्रकाशित
यह सामग्री "उद्यम विकास का परिचय" श्रृंखला का हिस्सा है। पिछले लेख: भाग 3. एचटीटीपी/एचटीटीपीएस - 1नमस्ते! आज हम HTTP और HTTPS प्रोटोकॉल के बारे में जानेंगे। लेकिन पहले, आइए एक बिंदु स्पष्ट करें: हम OSI मॉडल के अनुप्रयोग स्तर पर एक नेटवर्क पर डेटा भेजने के लिए प्रोटोकॉल के बारे में बात कर रहे हैं। आपको याद होगा कि OSI मॉडल के बारे में हमें पिछले लेखों में से एक में पता चला था। यदि आपको वह याद नहीं है, तो यहाँ है

डेटा संचार प्रोटोकॉल क्या है?

इसे हम नियमों का सहमत सेट कहते हैं जो विभिन्न सेवाओं के विकासकर्ताओं को ऐसे प्रारूप में जानकारी भेजने की अनुमति देता है जिसे अन्य लोग समझ सकें। उदाहरण के लिए, आप Facebook और Twitter दोनों से जानकारी प्राप्त करने के लिए Google Chrome का उपयोग कर सकते हैं, क्योंकि डेवलपर इसे मानक 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 — प्रोटोकॉल संस्करण
फिर शीर्षलेख आओ:
  • होस्ट - वह होस्ट जिसके लिए अनुरोध किया गया है
  • उपयोगकर्ता-एजेंट - ग्राहक अनुरोध भेज रहा है
संदेश का मुख्य भाग गायब है। HTTP अनुरोध में, केवल स्टार्ट लाइन और "होस्ट" हेडर की आवश्यकता होती है। अब आइए एक-एक करके सब कुछ देखें। एक HTTP अनुरोध में कुछ विधि होनी चाहिए। उनमें से नौ हैं: GET, POST, PUT, OPTIONS, HEAD, PATCH, DELETE, TRACE, Connect। सबसे आम GET और POST हैं। ये दो तरीके पहले पर्याप्त होंगे। प्राप्त करें - यह विधि सर्वर से सामग्री का अनुरोध करती है। तदनुसार, GET पद्धति के अनुरोधों में संदेश का मुख्य भाग नहीं होता है। लेकिन अगर आपको जरूरत है, तो आप निम्नलिखित प्रारूप में पथ (प्रारंभिक रेखा में) के माध्यम से पैरामीटर पास कर सकते हैं:

https://cdn.codegym.cc/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2
जहाँ codegym.cc होस्ट है, /send अनुरोध का पथ है, और ? एक विभाजक है जो इंगित करता है कि क्वेरी पैरामीटर अनुसरण करते हैं। अंत में, कुंजी-मूल्य जोड़े ("कुंजी = मान") सूचीबद्ध हैं, एक एम्परसेंड द्वारा अलग किए गए हैं। पोस्ट - यह विधि सर्वर पर जानकारी प्रकाशित करती है। एक POST अनुरोध विभिन्न प्रकार की जानकारी भेज सकता है: पैरामीटर "कुंजी = मान" जोड़े, 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), और स्थिति विवरण (ठीक) शामिल हैं। इसके शीर्षकों में सामग्री का प्रकार और लंबाई शामिल होती है। प्रतिक्रिया निकाय में HTML कोड होता है जिसे ब्राउज़र HTML पृष्ठ के रूप में प्रस्तुत करता है।

प्रतिक्रिया स्थिति कोड

संदेश के मुख्य भाग और शीर्षलेखों के बारे में सब कुछ स्पष्ट है, लेकिन हमें स्थिति कोड के बारे में कुछ शब्द कहने चाहिए। प्रतिक्रिया स्थिति कोड हमेशा तीन अंकों का होता है। कोड का पहला अंक प्रतिक्रिया की श्रेणी को इंगित करता है:
  • 1xx - सूचनात्मक। अनुरोध प्राप्त हुआ था। सर्वर जारी रखने के लिए तैयार है।
  • 2xx - सफल। अनुरोध प्राप्त हुआ, समझा गया और संसाधित किया गया।
  • 3xx - पुनर्निर्देशन। अनुरोध को संसाधित करने के लिए अतिरिक्त क्रियाएं की जानी चाहिए।
  • 4xx - क्लाइंट त्रुटि। अनुरोध में त्रुटियां हैं या प्रोटोकॉल का पालन नहीं करता है।
  • 5xx - सर्वर त्रुटि। अनुरोध सही तरीके से तैयार किया गया था, लेकिन सर्वर इसे प्रोसेस नहीं कर सका।
कोड में दूसरा और तीसरा अंक अधिक विशिष्ट प्रतिक्रिया दर्शाता है। उदाहरण के लिए:
  • 200 ओके - अनुरोध प्राप्त हुआ और सफलतापूर्वक संसाधित किया गया।
  • 201 बनाया गया - अनुरोध प्राप्त हुआ और सफलतापूर्वक संसाधित किया गया, जिसके परिणामस्वरूप एक नया संसाधन या उदाहरण बनाया गया।
  • 301 स्थायी रूप से स्थानांतरित - अनुरोधित संसाधन स्थायी रूप से स्थानांतरित किया गया था। इसके बाद के अनुरोध नए पते का उपयोग करके किए जाने चाहिए।
  • 307 अस्थायी पुनर्निर्देशन - संसाधन को अस्थायी रूप से स्थानांतरित कर दिया गया है। अभी के लिए, इसे स्वचालित अग्रेषण का उपयोग करके एक्सेस किया जा सकता है।
  • 403 निषिद्ध - अनुरोध समझ में आया, लेकिन प्राधिकरण की आवश्यकता है।
  • 404 नहीं मिला — सर्वर को इस पते पर संसाधन नहीं मिला।
  • 501 लागू नहीं किया गया — सर्वर अनुरोध का जवाब देने के लिए आवश्यक कार्यक्षमता का समर्थन नहीं करता है।
  • 505 HTTP संस्करण समर्थित नहीं — सर्वर HTTP प्रोटोकॉल के निर्दिष्ट संस्करण का समर्थन नहीं करता है।
प्रतिक्रिया स्थिति कोड के अतिरिक्त, एक स्थिति विवरण भी भेजा जाता है। यह स्पष्ट करने में मदद करता है कि प्रत्येक विशिष्ट स्थिति का क्या अर्थ है। HTTP प्रोटोकॉल बहुत व्यावहारिक है: यह बड़ी संख्या में हेडर प्रदान करता है, जिसका उपयोग आप क्लाइंट और सर्वर के बीच बहुत ही लचीले संचार की व्यवस्था करने के लिए कर सकते हैं। एक लेख के लिए सभी अनुरोधों और प्रतिक्रिया शीर्षलेखों, अनुरोध विधियों और प्रतिक्रिया स्थिति कोडों पर पूर्ण विचार करना बहुत अधिक होगा। यदि आपको जरूरत है, तो आप प्रोटोकॉल के आधिकारिक विनिर्देश को पढ़ सकते हैं, जो सभी बारीकियों का वर्णन करता है। यह पोर्ट 80 पर HTTP प्रोटोकॉल का उपयोग करने के लिए प्रथागत है, इसलिए जब आप एक URL देखते हैं जो पोर्ट 80 के साथ समाप्त होता है, तो आप आश्वस्त हो सकते हैं कि आपको इसे एक्सेस करने के लिए HTTP का उपयोग करने की आवश्यकता है। जैसे-जैसे तकनीक विकसित हुई और व्यक्तिगत डेटा इंटरनेट पर भेजा जाने लगा, यह सोचना आवश्यक हो गया कि क्लाइंट द्वारा सर्वर को भेजी जाने वाली जानकारी के लिए अतिरिक्त सुरक्षा कैसे प्रदान की जाए। इसी सोच का नतीजा था HTTPS प्रोटोकॉल।

HTTPS और HTTP के बीच का अंतर

सिंटैक्स के संदर्भ में, HTTPS HTTP प्रोटोकॉल के समान है। यही है, यह एक ही स्टार्ट लाइन और हेडर का उपयोग करता है। अंतर केवल अतिरिक्त एन्क्रिप्शन और डिफ़ॉल्ट पोर्ट (443) हैं । HTTPS को HTTP और TCP के बीच एन्क्रिप्ट किया गया है, यानी एप्लिकेशन और ट्रांसपोर्ट लेयर के बीच। यदि आप इसका मतलब भूल गए हैं, तो OSI मॉडल पर लेख देखें । आज का एन्क्रिप्शन मानक TLS है। हम इस विषय में बहुत अधिक नहीं जाएंगे, लेकिन याद रखें कि सूचना के ट्रांसपोर्ट लेयर तक पहुंचने से पहले एन्क्रिप्शन होता है. एचटीटीपीएस में, मेजबान और बंदरगाह को छोड़कर जहां अनुरोध भेजा जाता है, पूरी तरह से सभी जानकारी एन्क्रिप्ट की जाती है। HTTP के बजाय HTTPS प्रोटोकॉल का उपयोग करने के लिए सर्वर को स्विच करने के लिए सर्वर कोड को बदलने के लिए उपयोग की आवश्यकता नहीं होती है। यह सुविधा सर्वलेट कंटेनरों में सक्षम है, जिसके बारे में हम बाद के लेखों में चर्चा करेंगे। और आज के लिए बस इतना ही। दरअसल, एक पल रुकिए। कुछ HTTP अनुरोध प्राप्त करने के लिए, Google Chrome खोलें, F12 दबाएं, और "नेटवर्क" टैब चुनें। आपके ब्राउज़र द्वारा भेजे/प्राप्त किए गए सभी अनुरोध और प्रतिक्रियाएँ यहाँ प्रदर्शित होंगी। भाग 4. मावेन भाग 5 की मूल बातें। सर्वलेट्स और जावा सर्वलेट एपीआई। एक साधारण वेब एप्लिकेशन लिखना भाग 6. सर्वलेट कंटेनर भाग 7. एमवीसी (मॉडल-व्यू-कंट्रोलर) पैटर्न का परिचय
टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION