मैंने इस सवाल को कई बार सुना है, मेरा जवाब आमतौर पर "आप यह क्यों चाहते हैं?"। किसी को दूसरे की आवश्यकता नहीं होती है और उनके समाप्ति समय को विभिन्न मानदंडों का उपयोग करके निर्धारित किया जाना चाहिए।
सत्र स्थिति में उपयोगकर्ता को लॉग इन करने की आवश्यकता नहीं होती है। एक ऐप को सत्र स्थिति का उपयोग करने के लिए प्रमाणीकरण का उपयोग करने की आवश्यकता नहीं होती है। आपके पास एक वेब ऐप हो सकता है जहां उपयोगकर्ता लॉग इन करने से पहले भी सत्र स्थिति का उपयोग कर रहा है, और फिर भी लॉग आउट करने के बाद इसका उपयोग कर रहा है। यहां एक "सत्र" तब होता है जब कोई ग्राहक (वेब ब्राउज़र) किसी साइट से कनेक्ट होता है, कुछ पृष्ठों के आसपास कूदता है, और पत्तियां। चाहे कोई उपयोगकर्ता लॉग इन है या नहीं, अप्रासंगिक है। यदि आप अपना ब्राउज़र बंद करते हैं, तो एक नया खोलें, और साइट पर वापस जाएं, एक नया सत्र बनाया गया है। लेकिन सर्वर नहीं जानता कि आपने अपनी पुरानी ब्राउज़र विंडो बंद कर दी है, इसलिए मूल सत्र अभी भी मौजूद है। स्केलेबिलिटी (मुख्य रूप से स्मृति) उद्देश्यों के लिए, हम अपने सत्र समाप्त कर देते हैं और इसकी स्मृति और सत्र-ट्रैकिंग संसाधनों को मुक्त करते हैं। यदि कोई ग्राहक नया अनुरोध करने में बहुत लंबा समय लेता है, तो नया अनुरोध एक नया सत्र तैयार करेगा।
दूसरी ओर, आप प्रमाणीकरण का उपयोग कर सकते हैं और सत्र स्थिति का उपयोग नहीं कर सकते हैं। मैं आम तौर पर दोनों सत्रों और व्यूस्टेट अक्षम दोनों के साथ अपने ऐप्स शुरू करता हूं और केवल तभी सक्षम होता है जब वास्तव में आवश्यक हो और पृष्ठ-दर-पृष्ठ आधार पर (या व्यूस्टेट के लिए नियंत्रण-नियंत्रण)।
सत्र समाप्ति समय प्रत्येक सत्र द्वारा उपयोग की जाने वाली स्मृति, वेब सर्वर पर उपलब्ध स्मृति, समवर्ती उपयोगकर्ताओं की संख्या और अन्य स्केलेबिलिटी आवश्यकताओं द्वारा निर्धारित किया जाना चाहिए। यह आमतौर पर कुछ मिनटों की सीमा में एक घंटे तक होता है।
प्रमाणीकरण क्लाइंट पर एक कुकी के रूप में जारी रखा जाता है और मूल रूप से सर्वर के किसी भी संसाधन का उपभोग नहीं करता है। स्केलेबिलिटी-वार, लॉगिन समाप्ति आमतौर पर सत्र समाप्ति से अधिक हो सकती है। वास्तव में एक उपयोगकर्ता अनिश्चित काल तक लॉग इन रह सकता है। जब प्रमाणीकरण की समाप्ति कम रखी जाती है, तो यह आमतौर पर सुरक्षा कारणों से होती है। यदि आप अपने कंप्यूटर से 15 मिनट तक दूर नहीं जाते हैं, तो आप नहीं चाहते हैं कि आपका बैंक वेब साइट खाता किसी और के लिए उपलब्ध हो, है ना? आप जीमेल या फेसबुक में लॉग इन कर सकते हैं और "मुझे याद रखें" का चयन कर सकते हैं और कुछ दिनों बाद वापस आ सकते हैं और आप अभी भी लॉग इन हैं। लेकिन निश्चित रूप से यह एक नया सत्र होगा क्योंकि कुछ वेब एप को कुछ के लिए सत्र डेटा पर नहीं रखना चाहिए दिन।
अब, मैंने देखा है कि बहुत से लोग प्रमाणीकरण और सत्र की समाप्ति के लिए समान अवधि का उपयोग करते हैं। और जब उपयोगकर्ता लॉग आउट करता है तो कई लोग अपने सत्र को छोड़ देते हैं() या साफ़()। लेकिन वे भूल जाते हैं कि आपको अभी भी उस मामले को प्रबंधित करने की आवश्यकता है जहां उपयोगकर्ता अभी भी लॉग इन है लेकिन सत्र समाप्त हो गया है (जो अगले अनुरोध पर नया खाली सत्र बनाता है), या जब उपयोगकर्ता का प्रमाणीकरण समाप्त हो गया लेकिन उनका सत्र नहीं (उन्हें फिर से लॉग इन करने की आवश्यकता है, लेकिन संभवतः किसी अन्य उपयोगकर्ता के संवेदनशील डेटा के साथ, पुराने पुराने समय-समय पर समाप्त होने वाले सत्र को ले जाना)। इन मामलों की देखभाल करना बहुत महत्वपूर्ण है, इससे कोई फर्क नहीं पड़ता कि आप अंततः अपने आवेदन के लिए कौन से टाइमआउट चुनते हैं।