इस लेख में, मैं आपको मूलभूत स्तर पर वर्ल्ड वाइड वेब कैसे काम करता है, इसके बारे में बताऊंगा।
कोर तकनीक HTTP - हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल है। यह वह संचार प्रोटोकॉल है जिसका उपयोग आप वेब ब्राउज़ करते समय करते हैं।
एक मूलभूत स्तर पर, जब आप किसी वेबसाइट पर जाते हैं, तो आपका ब्राउज़र एक सर्वर पर HTTP अनुरोध करता है। फिर वह सर्वर एक संसाधन (एक छवि, वीडियो, या वेब पेज का HTML) के साथ प्रतिक्रिया करता है - जिसे आपका ब्राउज़र तब आपके लिए प्रदर्शित करता है।
यह HTTP का संदेश-आधारित मॉडल है। हर HTTP इंटरैक्शन में एक अनुरोध और एक प्रतिक्रिया शामिल होती है।
अपनी प्रकृति से, HTTP स्टेटलेस है।
स्टेटलेस का अर्थ है कि सभी अनुरोध एक दूसरे से अलग हैं। इसलिए आपके ब्राउज़र से प्रत्येक अनुरोध को अपने आप में सर्वर के लिए अनुरोध को पूरा करने के लिए पर्याप्त जानकारी होनी चाहिए। इसका यह भी अर्थ है कि HTTP के संदेश-आधारित मॉडल का प्रत्येक लेनदेन दूसरों से अलग से संसाधित होता है।
URLs
URL (यूनिफॉर्म रिसोर्स लोकेटर) शायद वेब की सबसे ज्ञात अवधारणा है। यह सबसे महत्वपूर्ण और उपयोगी अवधारणाओं में से एक भी है। एक URL वेब पर संसाधनों की पहचान करने के लिए उपयोग किया जाने वाला एक वेब एड्रेस है।
वेब का विचार संसाधनों के आसपास संरचित है। अपनी शुरुआत से वेब टेक्स्ट/HTML फ़ाइलों, दस्तावेजों, छवियों आदि को साझा करने का प्लेटफॉर्म था, और इस तरह इसे संसाधनों का संग्रह माना जा सकता है।

प्रोटोकॉल — ज्यादातर वे HTTP होते हैं (या सुरक्षित संस्करण के लिए HTTPS)।
अन्य उल्लेखनीय प्रोटोकॉल हैं:
- फाइल ट्रांसफर प्रोटोकॉल (FTP) — एक नेटवर्क पर क्लाइंट और सर्वर के बीच फ़ाइलों को ट्रांसफर करने के लिए उपयोग किया जाने वाला एक मानक प्रोटोकॉल।
- सिंपल मेल ट्रांसफर प्रोटोकॉल (SMTP) ईमेल ट्रांसमिशन के लिए एक मानक है।
डोमेन — वह नाम जिसका उपयोग एक या अधिक IP पतों की पहचान करने के लिए किया जाता है जहां संसाधन स्थित है।
पथ — सर्वर पर संसाधन स्थान निर्दिष्ट करता है। यह उसी तर्क का उपयोग करता है जो उस डिवाइस पर संसाधन स्थान के लिए उपयोग किया जाता है जहां आप यह लेख पढ़ रहे हैं (यानी /search/cars/VWBeetle.pdf या C:/my cars/VWBeetle.pdf)।
पैरामीटर्स — सर्वर पर संसाधन की पहचान या फ़िल्टर करने के लिए उपयोग किया जाने वाला अतिरिक्त डेटा।
नोट: HTTP के बारे में लेख और अधिक जानकारी खोजते समय, आप URI (या यूनिफॉर्म रिसोर्स आइडेंटिफायर) शब्द का सामना कर सकते हैं। URI का उपयोग कभी-कभी URL के बजाय किया जाता है लेकिन ज्यादातर औपचारिक विनिर्देशों में और उन लोगों द्वारा जो दिखावा करना चाहते हैं। :)
HTTP अनुरोध
HTTP में, हर अनुरोध में एक URL पता होना चाहिए। इसके अतिरिक्त, अनुरोध को एक मेथड की आवश्यकता होती है। चार मुख्य HTTP मेथड हैं:
- GET
- PUT
- POST
- DELETE
मैं इस लेख के HTTP मेथड अनुभाग में इन मेथड्स, और अधिक, की व्याख्या करूंगा।
और ये मेथड्स सीधे क्रियाओं से मेल खाते हैं:
- पढ़ें
- अपडेट करें
- बनाएं
- हटाएं
सभी HTTP संदेशों में एक या अधिक हेडर होते हैं, उसके बाद एक वैकल्पिक संदेश बॉडी होती है। बॉडी में वह डेटा होता है जो अनुरोध के साथ भेजा जाएगा या प्रतिक्रिया के साथ प्राप्त डेटा।
हर HTTP अनुरोध का पहला भाग तीन आइटम रखता है:
उदाहरण:
- GET /adds/search-result?item=vw+beetle HTTP/1.1
जब एक URL में "?" चिह्न होता है, तो इसका मतलब है कि इसमें एक क्वेरी है। इसका मतलब है कि यह अनुरोधित संसाधन के पैरामीटर भेजता है।
- पहला भाग एक मेथड है जो बताता है कि किस HTTP मेथड का उपयोग किया गया है। सबसे अधिक उपयोग किया जाने वाला GET मेथड है। GET मेथड वेब सर्वर से एक संसाधन प्राप्त करता है और चूंकि GET में एक संदेश बॉडी नहीं होती है, इसलिए हेडर के बाद कुछ भी आवश्यक नहीं है।
- दूसरा भाग एक अनुरोधित URL है।
- तीसरा भाग उपयोग किए जा रहे HTTP संस्करण है। संस्करण 1.1. अधिकांश ब्राउज़रों के लिए सबसे आम संस्करण है, हालांकि, संस्करण 2.0 ले रहा है।
HTTP अनुरोध में कुछ अन्य दिलचस्प चीजें भी हैं:
रेफरर हेडर — वह URL बताता है जहां से अनुरोध उत्पन्न हुआ है।
यूजर-एजेंट हेडर — अनुरोध उत्पन्न करने के लिए उपयोग किए जा रहे ब्राउज़र के बारे में अतिरिक्त जानकारी।
होस्ट हेडर — एक होस्ट नाम की विशिष्ट पहचान करता है; जब एक ही सर्वर पर कई वेब पेज होस्ट किए जाते हैं तो यह आवश्यक है।
कुकी हेडर — क्लाइंट को अतिरिक्त पैरामीटर सबमिट करता है।
HTTP प्रतिक्रियाएं
HTTP अनुरोधों की तरह, HTTP प्रतिक्रियाओं में भी तीन आइटम होते हैं:
उदाहरण:
HTTP/1.1 200 OK
- पहला भाग उपयोग किए जा रहे HTTP संस्करण है।
- दूसरा भाग अनुरोध के परिणाम का संख्यात्मक कोड है।
- तीसरा भाग दूसरे भाग का पाठ्य विवरण है।
HTTP प्रतिक्रिया में कुछ अन्य दिलचस्प चीजें हैं:
सर्वर हेडर — इस बारे में जानकारी कि किस वेब सर्वर सॉफ्टवेयर का उपयोग किया जा रहा है।
सेट-कुकी हेडर — ब्राउज़र को कुकी जारी करता है।
संदेश बॉडी — HTTP प्रतिक्रिया के लिए संदेश बॉडी रखना आम है।
कंटेंट-लेंथ हेडर — बाइट्स में संदेश बॉडी का आकार बताता है।
HTTP मेथड्स
सबसे आम मेथड्स GET और POST हैं। लेकिन कुछ अन्य भी हैं।
GET — आप इस मेथड का उपयोग निर्दिष्ट संसाधन से डेटा का अनुरोध करने के लिए करते हैं जहां डेटा किसी भी तरह से संशोधित नहीं होता है। GET अनुरोध संसाधन की स्थिति को नहीं बदलते हैं।
POST — आप इस मेथड का उपयोग सर्वर पर डेटा भेजकर एक संसाधन बनाने के लिए करते हैं।
PUT — आप इस मेथड का उपयोग अनुरोध के बॉडी में सामग्री का उपयोग करके सर्वर पर मौजूदा संसाधन को अपडेट करने के लिए करते हैं। इसे किसी चीज़ को "संपादित" करने के तरीके के रूप में सोचें।
HEAD — आप इस मेथड का उपयोग उसी तरह करते हैं जैसे आप GET का उपयोग करते हैं, लेकिन इस अंतर के साथ कि HEAD मेथड की वापसी में प्रतिक्रिया में बॉडी नहीं होनी चाहिए। लेकिन वापसी में वही हेडर होंगे जैसे GET का उपयोग किया गया था। आप HEAD मेथड का उपयोग GET अनुरोध करने से पहले संसाधन मौजूद है या नहीं जांचने के लिए करते हैं।
TRACE — आप इस मेथड का उपयोग नैदानिक उद्देश्यों के लिए करते हैं। प्रतिक्रिया में उसके बॉडी में अनुरोध संदेश की सटीक सामग्री होगी।
OPTIONS — आप इस मेथड का उपयोग लक्ष्य संसाधन के लिए उपलब्ध संचार विकल्पों (HTTP मेथड्स) का वर्णन करने के लिए करते हैं।
PATCH — आप इस मेथड का उपयोग संसाधन पर आंशिक संशोधन लागू करने के लिए करते हैं।
DELETE —आप इस मेथड का उपयोग निर्दिष्ट संसाधन को हटाने के लिए करते हैं।
REST
प्रतिनिधित्वात्मक राज्य स्थानांतरण (REST) एक आर्किटेक्चर शैली है जहां अनुरोध और प्रतिक्रियाओं में सिस्टम संसाधन की वर्तमान स्थिति के प्रतिनिधित्व होते हैं।
"नियमित" तरीका:
- https://carapp.com/search?make=wv&model=beetle
REST-शैली:
- https://carapp.com/search/vw/beetle
यदि आप उत्सुक हैं तो आप यहां REST के बारे में अधिक जान सकते हैं।
HTTP हेडर्स
तीन मुख्य घटक हैं जो अनुरोध/प्रतिक्रिया संरचना बनाते हैं। इनमें शामिल हैं:
- पहली पंक्ति
- हेडर्स
- बॉडी/कंटेंट
हमने HTTP अनुरोधों और प्रतिक्रियाओं में पहली पंक्ति के बारे में पहले ही बात की थी, और बॉडी फ़ंक्शन का भी उल्लेख किया गया था। अब हम HTTP हेडर्स के बारे में बात करेंगे।
HTTP हेडर्स पहली पंक्ति के बाद जोड़े जाते हैं और कोलन द्वारा अलग किए गए नाम:मान जोड़े के रूप में परिभाषित किए जाते हैं। HTTP हेडर्स का उपयोग अनुरोध या प्रतिक्रिया के साथ अतिरिक्त पैरामीटर भेजने के लिए किया जाता है।
जैसा कि मैंने पहले कहा, संदेश का बॉडी अनुरोध के साथ भेजे जाने वाले डेटा या प्रतिक्रिया के साथ प्राप्त डेटा को शामिल करता है।
उनके उपयोग के आधार पर 4 व्यापक श्रेणियों में समूहीकृत विभिन्न प्रकार के हेडर्स हैं:
- जनरल हेडर — हेडर्स जिनका उपयोग अनुरोध और प्रतिक्रिया दोनों संदेशों में किया जा सकता है और जो एक्सचेंज किए जा रहे डेटा से स्वतंत्र हैं।
- अनुरोध हेडर — ये हेडर्स अनुरोधित डेटा के लिए पैरामीटर या पैरामीटर को परिभाषित करते हैं जो अनुरोध करने वाले क्लाइंट के बारे में महत्वपूर्ण जानकारी देते हैं।
- प्रतिक्रिया हेडर — ये हेडर्स आने वाली प्रतिक्रिया के बारे में जानकारी रखते हैं।
- एंटिटी हेडर — एंटिटी हेडर्स उस कंटेंट का वर्णन करते हैं जो संदेश के बॉडी को बनाता है।

HTTP स्टेटस कोड
वेब ब्राउज़ करते समय, आपने "404 एरर: नॉट फाउंड" पेज या "500 एरर: सर्वर प्रतिक्रिया नहीं दे रहा" पेज का सामना किया होगा।
ये HTTP स्टेटस कोड हैं।
हर HTTP प्रतिक्रिया संदेश में उसकी पहली पंक्ति में एक HTTP स्टेटस कोड होना चाहिए, जो हमें अनुरोध का परिणाम बताता है।

पांच समूह हैं जिनमें स्टेटस कोड को पहले अंक के आधार पर समूहीकृत किया जाता है:
- 1xx — सूचनात्मक।
- 2xx — अनुरोध सफल रहा।
- 3xx — क्लाइंट को एक अलग संसाधन पर पुनर्निर्देशित किया जाता है।
- 4xx — अनुरोध में किसी प्रकार की त्रुटि है।
- 5xx — सर्वर को अनुरोध पूरा करने में त्रुटि आई।
यहाँ HTTP स्टेटस रिस्पांस कोड की पूरी सूची और उनका स्पष्टीकरण है।
HTTPS (हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल सिक्योर)
HTTP प्रोटोकॉल का सुरक्षित संस्करण हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल सिक्योर (HTTPS) है। HTTPS ब्राउज़र (क्लाइंट) और वेबसाइट (सर्वर) के बीच एन्क्रिप्टेड संचार प्रदान करता है।
HTTPS में, संचार प्रोटोकॉल को ट्रांसपोर्ट लेयर सिक्योरिटी (TLS) या सिक्योर सॉकेट्स लेयर (SSL) का उपयोग करके एन्क्रिप्ट किया जाता है।
इसलिए प्रोटोकॉल को अक्सर TLS पर HTTP, या SSL पर HTTP भी कहा जाता है।
TLS और SSL दोनों प्रोटोकॉल एक असममित एन्क्रिप्शन सिस्टम का उपयोग करते हैं। असममित एन्क्रिप्शन सिस्टम एक सार्वजनिक कुंजी (एन्क्रिप्शन कुंजी) और एक निजी कुंजी (डिक्रिप्शन कुंजियों) का उपयोग करके एक संदेश को एन्क्रिप्ट करते हैं।
कोई भी सार्वजनिक कुंजी का उपयोग करके एक संदेश को एन्क्रिप्ट कर सकता है। हालांकि, निजी कुंजियाँ गुप्त होती हैं, और इसका मतलब है कि केवल इच्छित प्राप्तकर्ता ही संदेश को डिक्रिप्ट कर सकता है।

SSL/TLS हैंडशेक
जब आप किसी वेबसाइट पर HTTPS कनेक्शन का अनुरोध करते हैं, तो वेबसाइट अपना SSL सर्टिफिकेट आपके ब्राउज़र को भेजती है। वह प्रक्रिया जहां आपका ब्राउज़र और वेबसाइट संचार शुरू करते हैं, उसे "SSL/TLS हैंडशेक" कहा जाता है।
SSL/TLS हैंडशेक में चरणों की एक श्रृंखला शामिल होती है जहां ब्राउज़र और वेबसाइट एक दूसरे को मान्य करते हैं और SSL/TLS टनल के माध्यम से संचार शुरू करते हैं।
जैसा कि आपने शायद देखा होगा, जब HTTPS कनेक्शन में एक विश्वसनीय सुरक्षित टनल का उपयोग किया जाता है, तो ब्राउज़र के एड्रेस बार में हरे पैडलॉक आइकन प्रदर्शित होता है।

HTTPS के लाभ
HTTPS के प्रमुख लाभ हैं:
- ग्राहक जानकारी, जैसे क्रेडिट कार्ड नंबर और अन्य संवेदनशील जानकारी, एन्क्रिप्टेड है और इसे इंटरसेप्ट नहीं किया जा सकता।
- आगंतुक सत्यापित कर सकते हैं कि आप एक पंजीकृत व्यवसाय हैं और आप डोमेन के मालिक हैं।
- ग्राहक जानते हैं कि उन्हें HTTPS के बिना साइटों पर नहीं जाना चाहिए, और इसलिए, वे उन साइटों पर भरोसा करने और खरीदारी पूरी करने की अधिक संभावना रखते हैं जो HTTPS का उपयोग करती हैं।
पढ़ने के लिए धन्यवाद! मेरे freeCodeCamp प्रोफाइल पर ऐसे और लेख देखें। और मेरे GitHub पेज पर बनाए गए अन्य मजेदार सामान देखें।