HTTP को स्टेटलेस कहा जाता है। मतलब, यह डेटा के प्रसारण के लिए जानकारी संग्रहीत करने की आवश्यकता नहीं है।
लेकिन HTTP टीसीपी का उपयोग करता है, जो राज्य उन्मुख है।
अगर ऐसा है, तो HTTP स्टेटलेस कैसे हो जाता है?
HTTP को स्टेटलेस कहा जाता है। मतलब, यह डेटा के प्रसारण के लिए जानकारी संग्रहीत करने की आवश्यकता नहीं है।
लेकिन HTTP टीसीपी का उपयोग करता है, जो राज्य उन्मुख है।
अगर ऐसा है, तो HTTP स्टेटलेस कैसे हो जाता है?
जवाबों:
HTTP की परवाह नहीं की जाती है और यह स्वतंत्र है - निम्न-स्तरीय प्रोटोकॉल में से कोई भी स्वयं को परिवहन करने के लिए उपयोग किया जाता है, भले ही वह स्वयं ही स्टेटलेस हो।
परिवहन तकनीक टीसीपी, या नोवेल के पुराने एसपीएक्स, या एससीटीपी, या जो भी आप सपने देख सकते हैं, और एचटीटीपी अभी भी वही काम करेंगे। HTTP को एक स्ट्रीमिंग या कनेक्शन-उन्मुख प्रोटोकॉल की आवश्यकता होती है - और URL पर resolvable होने पर निर्भर करता है - लेकिन यह ध्यान नहीं देता कि यह कैसे पूरा होता है।
यह एक कारण है कि स्तरित मॉडल या नेटवर्क स्टैक मौजूद है: आवेदन परत को निचली परतों के साथ खुद को चिंता करने की आवश्यकता नहीं है।
सिर्फ इसलिए कि एक निचले स्तर का प्रोटोकॉल स्टेटफुल है इसका मतलब यह नहीं है कि इसके शीर्ष पर कुछ भी स्वचालित रूप से स्टेटफुल हो जाता है या स्टेटफुल होना आवश्यक है।
HTTP अपने आप में स्टेटलेस है। तो इसका मतलब है कि अनुप्रयोगों को राज्य स्थापित करने के लिए HTTP के शीर्ष पर एक और परत को लागू करना होगा। यह आमतौर पर सत्र कुकीज़ के साथ किया जाता है।
"HTTP स्टेटलेस है" इसका मतलब है कि प्रत्येक HTTP लेनदेन (अनुरोध-प्रतिक्रिया जोड़ी) को पिछले अनुरोध-प्रतिक्रिया जोड़ी से किसी भी राज्य में स्वतंत्र रूप से संसाधित किया जा सकता है।
विशेष अनुरोध-प्रतिक्रिया जोड़ी को ले जाने के लिए आपको एक प्रोटोकॉल की आवश्यकता होती है जो मनमाने ढंग से बड़े ब्लॉक को ले जाने में सक्षम हो और मनमाने ढंग से बड़े ब्लॉक को वापस ले सके, और सीमित पैकेट आकार के साथ एक परत पर ऐसा करने के लिए, टीसीपी को स्टेटफुल होना चाहिए।
लेकिन लेन-देन की सीमा के पार, कोई राज्य नहीं है। क्लाइंट कनेक्शन को छोड़ सकता है और अगले अनुरोध के लिए एक नया स्थापित कर सकता है। वास्तव में जो शुरुआती संस्करणों में एकमात्र विकल्प था और यह अभी भी उसी तरह काम करता है यदि क्लाइंट Connection: keep-alive
हेडर को शामिल नहीं करता है ।
अगला अनुरोध भी आसानी से विभिन्न सर्वर द्वारा संभाला जा सकता है और क्लाइंट को कभी पता नहीं चलेगा, क्योंकि सर्वर को किसी भी राज्य को बनाए रखने की आवश्यकता नहीं है (जब तक कि एप्लिकेशन HTTP के शीर्ष पर अपना राज्य नहीं जोड़ता है, आमतौर पर सत्र के रूप में; परिणामी जटिलताओं; लोड-बैलेंसिंग में HTTP पर स्टेटफुल प्रोटोकॉल बनाने के लिए इसकी सजा है)। इसका उपयोग व्यस्त सर्वरों को लोड-बैलेंस करने में किया जाता है।
can also easily be handled by different server and the client will never know
हालांकि तकनीकी रूप से सच है, यह भ्रामक है क्योंकि कई वेब अनुप्रयोग चिपचिपा सत्रों का उपयोग करते हैं, एक ही ब्राउज़िंग सत्र से एक ही सर्वर पर भविष्य के अनुरोधों को रूट करने के लिए लोड बैलेंसर की आवश्यकता होती है। HTTP के दृष्टिकोण से, सत्र अप्रासंगिक हैं, लेकिन आपका अंतिम वाक्य यह बताता है कि अंतिम-उपयोगकर्ता अनुभव अप्रभावित रहेगा, जो चिपचिपा सत्रों के साथ गलत होगा।
HTTP की "स्टेटलेस" प्रकृति का अर्थ है कि इस परत पर, कोई भी राज्य जानकारी नहीं बनाई जाती है या इसका उपयोग नहीं किया जाता है।
आप इसे कुछ उदाहरणों में देख सकते हैं, उदाहरण के लिए HTTP प्रमाणीकरण में, क्रेडेंशियल हर अनुरोध के साथ भेजे जाते हैं, और लगातार कनेक्शन वास्तव में सिर्फ एक अनुकूलन हैं (यानी अगर मैं क्रेडेंशियल भेजता हूं, तो सर्वर अनुरोध के बाद भी इन्हें भूल जाता है, भले ही यह निकल जाए कनेक्शन खुला)।
इसके विपरीत, कुकी आधारित लॉगिन तंत्र स्टेटफुल हैं, लेकिन HTTP का हिस्सा नहीं है।
आपको इसे रूसी गुड़िया (या यदि आप चाहें तो बक्से) के एक सेट के रूप में समझना होगा, उनमें से प्रत्येक एक दूसरे को अंदर ले जा रहा है, तो यह है कि यह कैसे काम करता है: टीसीपी HTTP "अंदर" करता है, लेकिन यह इसके बारे में परवाह नहीं करता है या यह सुविधाएँ नहीं है।
पूरी तस्वीर प्राप्त करने के लिए मैं OSI मॉडल के बारे में पढ़ने की सलाह देता हूं क्योंकि यह स्पष्ट हो जाता है।
टीसीपी ओएसआई मॉडल में HTTP के नीचे कुछ परतों को बैठता है, प्रत्येक परत वास्तव में एक अलग प्रोटोकॉल के अनुरूप होती है।
हमारे मामले में HTTP प्रस्तुति और अनुप्रयोग परतों और परिवहन परत में टीसीपी में बैठता है। या यदि आप टीसीपी / आईपी मॉडल का उपयोग करते हैं तो टीसीपी और आईपी प्रोटोकॉल दोनों नेटवर्क लिंक लेयर और HTTP में एप्लिकेशन और प्रेजेंटेशन लेयर्स में बैठते हैं।