HTTP एक कारण के लिए एक स्टेटलेस प्रोटोकॉल है। HTTP पर सत्र वेल्ड स्थिति। अंगूठे के एक नियम के रूप में, सत्र राज्य का उपयोग करने से बचें।
अद्यतन: HTTP स्तर पर एक सत्र की कोई अवधारणा नहीं है; सर्वर क्लाइंट को एक विशिष्ट आईडी देकर और क्लाइंट को हर अनुरोध पर इसे फिर से सबमिट करने के लिए कहते हैं। फिर सर्वर उस आईडी को सेशन ऑब्जेक्ट्स के एक बड़े हैशटेबल में कुंजी के रूप में उपयोग करता है। जब भी सर्वर को एक अनुरोध मिलता है, तो यह सत्र की वस्तुओं के अपने हैशटेबल से सत्र की जानकारी को आईडी के आधार पर ग्राहक के अनुरोध के साथ प्रस्तुत करता है। यह सब अतिरिक्त काम स्केलेबिलिटी पर एक दोहरी मार है (एक बड़ा कारण HTTP स्टेटलेस है)।
- Whammy One: यह उस कार्य को कम करता है जो एक एकल सर्वर कर सकता है।
- Whammy Two: अब इसे स्केल करना कठिन हो जाता है क्योंकि अब आप किसी पुराने सर्वर के लिए अनुरोध नहीं कर सकते - वे सभी एक ही सत्र में नहीं होते हैं। आप दिए गए सत्र आईडी के साथ सभी अनुरोधों को एक ही सर्वर पर पिन कर सकते हैं। यह आसान नहीं है, और यह विफलता का एक एकल बिंदु है (सिस्टम के लिए संपूर्ण रूप से नहीं, बल्कि आपके उपयोगकर्ताओं के बड़े हिस्से के लिए)। या, आप क्लस्टर में सभी सर्वर पर सत्र भंडारण साझा कर सकते हैं, लेकिन अब आपके पास अधिक जटिलता है: नेटवर्क-संलग्न मेमोरी, एक स्टैंड-अलोन सत्र सर्वर, आदि।
यह सब देखते हुए, आप सत्र में जितनी अधिक जानकारी डालेंगे, प्रदर्शन पर उतना बड़ा प्रभाव पड़ेगा (जैसा कि विंको बताते हैं)। साथ ही विंको बताते हैं, यदि आपकी वस्तु क्रमबद्ध नहीं है, तो सत्र गलत व्यवहार करेगा। इसलिए, अंगूठे के एक नियम के रूप में, सत्र में बिल्कुल आवश्यक से अधिक डालने से बचें।
@ विन्को आप आमतौर पर सर्वर स्टोर की स्थिति के आसपास काम कर सकते हैं जो आपके द्वारा भेजे जा रहे रिस्पॉन्स पर नज़र रखने वाले डेटा को एम्बेड करके और क्लाइंट इसे पुनः सबमिट करते हैं, जैसे, किसी छिपे हुए इनपुट में डेटा को नीचे भेजना। यदि आपको वास्तव में राज्य के सर्वर-साइड ट्रैकिंग की आवश्यकता है, तो यह संभवतः आपके बैकिंग डेटस्टोर में होना चाहिए।
(Vinko कहते हैं: PHP सत्र जानकारी संग्रहीत करने के लिए एक डेटाबेस का उपयोग कर सकता है, और क्लाइंट के पास डेटा को फिर से जमा करने के लिए हर बार संभावित मापनीयता के मुद्दों को हल कर सकता है, लेकिन सुरक्षा मुद्दों का एक बड़ा कैन खोलता है जो आपको अब ध्यान देना चाहिए कि ग्राहक के नियंत्रण में आपका राज्य)