HTTP प्रोटोकॉल स्टेटलेस है। सत्र HTTP अनुरोधों के दौरान क्लाइंट स्थिति को संरक्षित करने का एक तरीका है। आप ऐसा करना चुन सकते हैं कि किसी प्लेटफ़ॉर्म के बिल्ट-इन सेशन को हैंडल करना या क्वेरी स्ट्रिंग पैरामीटर के साथ स्वयं करना। किसी भी तरह एक सत्र की कुछ अवधारणा कई कार्यों के लिए आवश्यक है।
आपका सहकर्मी संभवतः एक विशिष्ट कार्यान्वयन को नापसंद करता है, या अपने इच्छित उद्देश्यों के लिए सत्र का उपयोग नहीं कर रहा है। यदि आपको HTTP अनुरोधों पर किसी विशिष्ट क्लाइंट कनेक्शन के बारे में जानकारी बनाए रखने की आवश्यकता है, तो आपको सत्र दृढ़ता के कुछ प्रकार की आवश्यकता है।
निम्नलिखित समस्याएं विशिष्ट हैं:
सत्र चर की अनुपलब्ध प्रकृति
सत्र चर की वैश्विक गुंजाइश प्रकृति
सत्र गंवाने वाले सर्वरों को लोड करना
अनुप्रयोग पूल / सर्वर पुनः आरंभ
उदाहरण के लिए, मैं ज्यादातर PHP में काम करता हूं और अपने सत्र की जानकारी को रिलेशनल डेटाबेस में संग्रहीत करता हूं। इसलिए मेरा सत्र चर टाइप किया गया है। लोड संतुलन और सर्वर पुनरारंभ किसी सत्र समस्या का कारण नहीं बनता है।
यह एक और दिलचस्प है:
राज्य के नुकसान का कारण सत्र समय-आउट
सत्रों को अक्सर कुकीज़ के माध्यम से संरक्षित किया जाता है। इन्हें क्लाइंट द्वारा कभी भी डिलीट किया जा सकता है। लेकिन उन्हें क्वेरी स्ट्रिंग पैरामीटर के माध्यम से संरक्षित किया जा सकता है और इसलिए क्लाइंट पर कभी भी समय नहीं लगता है। सर्वर टाइमआउट आपके ऊपर है। तो भी यह मुद्दा कार्यान्वयन विशिष्ट है।
चलो सत्रों की पूरी अवधारणा को सिर्फ इसलिए नहीं फेंकते हैं क्योंकि हमें एक विशेष कार्यान्वयन पसंद नहीं है। कोई भी अच्छा वेब एप्लिकेशन ढांचा उपयोगकर्ता लॉगिन को संरक्षित करने या उपयोगकर्ता की वर्तमान यात्रा के लिए कुछ और बनाए रखने के लिए सत्र का उपयोग करने की सुविधा प्रदान करेगा। एक उपयोगकर्ता का डेटाबेस रिकॉर्ड लॉग इन करने पर उनके लिए विशिष्ट चीजों को संग्रहीत करने के लिए (और चाहिए) का उपयोग किया जा सकता है। हालांकि, अनाम आगंतुक, हालांकि, अस्थायी जानकारी भी अपने सत्र में संरक्षित करने के लायक हो सकते हैं, जैसे हाल ही में देखे गए पृष्ठों की एक छोटी सूची या पसंद करने के लिए वरीयता एक नोटिस छिपाएँ जो उन्होंने पहले ही देख लिया है। आम तौर पर केवल छोटे अस्थायी जानकारी सत्र भंडारण के लिए उपयुक्त है।
using things like query string parameters instead
- इस एक मामले के साथ, यदि संभव हो तो हमेशा हमेशा क्वेरी स्ट्रिंग पैरामीटर का उपयोग करें। उस प्रकार के पैरामीटर के लिए सत्र का उपयोग करना नाजुक है और जब उपयोगकर्ता कई टैब खोलते हैं तो वे अजीब बग का परिचय दे सकते हैं।