HTTP ट्यूटोरियल
HTTP से शुरुआत करना
खोज…
टिप्पणियों
हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP) क्लाइंट-रिक्वेस्ट / सर्वर-रिस्पांस मॉडल का उपयोग करता है। HTTP एक स्टेटलेस प्रोटोकॉल है, जिसका अर्थ है कि सर्वर को कई अनुरोधों की अवधि के लिए प्रत्येक उपयोगकर्ता के बारे में जानकारी या स्थिति बनाए रखने की आवश्यकता नहीं है। हालांकि, प्रदर्शन कारणों से और टीसीपी के कनेक्शन-विलंबता के मुद्दों से बचने के लिए, स्थायी, समानांतर या पाइपलाइन किए गए कनेक्शन जैसी तकनीकों का उपयोग किया जा सकता है।
संस्करण
संस्करण | टिप्पणियाँ) | अनुमानित रिलीज की तारीख |
---|---|---|
HTTP / 0.9 | "जैसा लागू हो" | 1991/01/01 |
HTTP / 1.0 | HTTP / 1.0 का पहला संस्करण, अंतिम संस्करण जिसने इसे RFC में नहीं बनाया है | 1992/01/01 |
HTTP / 1.0 r1 | HTTP के लिए पहला आधिकारिक RFC | 1996/05/01 |
HTTP / 1.1 | कनेक्शन हैंडलिंग में सुधार, नाम-आधारित वर्चुअल होस्ट के लिए समर्थन | 1997/01/01 |
एचटीटीपी / 1.1 आर 1 | असंदिग्ध कीवर्ड उपयोग साफ हो गया है, संदेश फ़्रेमिंग के साथ संभव मुद्दे तय हो गए हैं | 1999/06/01 |
HTTP / 1.1 r2 | बड़ा बदलाव | 2014-06-01 |
HTTP / 2 | HTTP / 2 के लिए पहली युक्ति | 2015/05/01 |
HTTP अनुरोध और प्रतिक्रियाएँ
HTTP वर्णन करता है कि कैसे एक HTTP क्लाइंट, जैसे कि वेब ब्राउज़र, एक HTTP सर्वर से नेटवर्क के माध्यम से एक HTTP अनुरोध भेजता है, जो तब क्लाइंट को एक HTTP प्रतिक्रिया भेजता है।
HTTP अनुरोध आमतौर पर या तो ऑनलाइन संसाधन के लिए एक अनुरोध है, जैसे कि वेब पेज या छवि, लेकिन इसमें अतिरिक्त जानकारी भी शामिल हो सकती है, जैसे किसी फ़ॉर्म में दर्ज किया गया डेटा। HTTP प्रतिक्रिया आमतौर पर ऑनलाइन संसाधन का प्रतिनिधित्व करती है, जैसे कि वेब पेज या छवि।
HTTP / 1.0
HTTP / 1.0 का वर्णन RFC 1945 में किया गया था।
HTTP / 1.0 में कुछ विशेषताएं नहीं हैं जो आज वेब पर आवश्यक हैं, जैसे कि वर्चुअल होस्ट के लिए Host
हेडर।
हालाँकि, HTTP क्लाइंट और सर्वर कभी-कभी घोषणा करते हैं कि वे HTTP / 1.0 का उपयोग करते हैं, यदि उनके पास HTTP / 1.1 प्रोटोकॉल का अपूर्ण कार्यान्वयन है (जैसे बिना chunked अंतरण एन्कोडिंग या पाइपलाइनिंग), या संगतता प्रदर्शन से अधिक महत्वपूर्ण मानी जाती है (जैसे स्थानीय प्रॉक्सी से कनेक्ट करते समय) सर्वर)।
GET / HTTP/1.0
User-Agent: example/1
HTTP/1.0 200 OK
Content-Type: text/plain
Hello
HTTP / 1.1
HTTP / 1.1 मूल रूप से RFC 2616 (प्रोटोकॉल) और RFC 2617 (प्रमाणीकरण) में 1999 में निर्दिष्ट किया गया है, लेकिन ये दस्तावेज़ अब अप्रचलित हैं और इन्हें संदर्भ के रूप में उपयोग नहीं किया जाना चाहिए:
RFC2616 का उपयोग न करें। अपनी हार्ड ड्राइव, बुकमार्क, और बर्न (या जिम्मेदारी से रीसायकल) को किसी भी प्रतियां जो प्रिंट आउट हैं, उसे हटा दें।
HTTP / 1.1 की अप-टू-डेट विनिर्देश, जो मेल खाती है कि आज HTTP कैसे लागू किया जाता है, नए RFCs 723x में है:
- RFC 7230: संदेश सिंटैक्स और रूटिंग
- RFC 7231: शब्दार्थ और सामग्री
- RFC 7232: सशर्त अनुरोध
- RFC 7233: रेंज अनुरोध
- RFC 7234: कैशिंग
- RFC 7235: प्रमाणीकरण
HTTP / 1.1 जोड़ा, अन्य सुविधाओं के बीच:
- चंक्ड ट्रांसफर एन्कोडिंग, जो सर्वरों को अज्ञात आकार की प्रतिक्रियाओं को मज़बूती से भेजने की अनुमति देता है,
- लगातार टीसीपी / आईपी कनेक्शन (जो HTTP / 1.0 में गैर-मानक एक्सटेंशन थे),
- डाउनलोड फिर से शुरू करने के लिए उपयोग किए जाने वाले रेंज अनुरोध,
- कैश कंट्रोल।
HTTP / 1.1 ने पाइपलाइनिंग शुरू करने की कोशिश की, जिससे HTTP क्लाइंट ने प्रतिक्रियाओं के इंतजार के बिना एक ही बार में कई अनुरोध भेजकर अनुरोध-प्रतिक्रिया विलंबता को कम किया। दुर्भाग्य से, इस सुविधा को कभी-कभी कुछ प्रॉक्सी में सही ढंग से लागू नहीं किया गया था, जिससे पाइपलाइन्ड कनेक्शन बंद हो गए या प्रतिक्रियाएं फिर से शुरू हो गईं।
GET / HTTP/1.0
User-Agent: example/1
Host: example.com
HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 6
Connection: close
Hello
HTTP / 2
HTTP / 2 ( RFC 7540 ) ने एक साधारण टेक्स्ट-बेस्ड रिक्वेस्ट और रिस्पॉन्स हेडर से HTTP के ऑन-द-वायर फॉर्मेट को फ्रेम में भेजे गए बाइनरी डेटा फॉर्मेट में बदल दिया। HTTP / 2 हेडर ( HPACK ) के संपीड़न का समर्थन करता है।
इसने अनुरोधों के ओवरहेड को कम कर दिया, और एक ही टीसीपी / आईपी कनेक्शन पर एक साथ कई प्रतिक्रियाएं प्राप्त करने में सक्षम बनाया।
डेटा प्रारूप में बड़े बदलावों के बावजूद, HTTP / 2 अभी भी HTTP हेडर का उपयोग करता है, और HTTP / 1.1 और 2 के बीच अनुरोधों और प्रतिक्रियाओं का सटीक अनुवाद किया जा सकता है।
HTTP / 0.9
HTTP का पहला संस्करण जो अस्तित्व में आया 0.9 है, जिसे अक्सर " HTTP As Implemented " कहा जाता है। 0.9 का एक सामान्य विवरण "पूर्ण HTTP [अर्थात 1.0] प्रोटोकॉल का एक उपखंड है।" हालाँकि, यह 0.9 और 1.0 के बीच क्षमताओं में असमानता को स्पष्ट करने में विफल रहता है।
0.9 फ़ीचर हेडर में न तो अनुरोध और न ही प्रतिक्रिया। अनुरोधों में एक एकल CRLF-टर्मिनेटेड लाइन ऑफ़ GET
, इसके बाद एक रिक्ति है, जिसके बाद अनुरोधित संसाधन URL है। प्रतिक्रियाओं को एक एकल HTML दस्तावेज़ होने की उम्मीद है। कनेक्शन सर्वर-साइड छोड़ने के द्वारा उक्त दस्तावेज़ का अंत चिह्नित किया गया है। किसी ऑपरेशन की सफलता या विफलता को इंगित करने के लिए कोई सुविधाएं नहीं हैं। एकमात्र संवादात्मक संपत्ति खोज स्ट्रिंग है जो <isindex>
HTML टैग से निकटता से जुड़ा हुआ है।
HTTP / 0.9 का उपयोग आजकल असाधारण रूप से दुर्लभ है। इसे कभी-कभी एम्बेडेड सिस्टम पर tftp के विकल्प के रूप में देखा जाता है।