वेब क्लाइंट और वेब सर्वर के बीच सेशन बनाए रखने के कुछ विकल्प निम्नलिखित हैं -
कुकीज़
एक वेबसर्वर प्रत्येक वेब क्लाइंट को कुकी के रूप में एक अद्वितीय सेशन ID असाइन कर सकता है और क्लाइंट से बाद के अनुरोधों के लिए उन्हें प्राप्त कुकी का उपयोग करके पहचाना जा सकता है।
यह एक प्रभावी तरीका नहीं हो सकता क्योंकि ब्राउज़र कभी-कभी कुकी का समर्थन नहीं करता है। सेशन बनाए रखने के लिए इस प्रक्रिया का उपयोग करने की अनुशंसा नहीं की जाती है।
हिडन फॉर्म फील्ड्स
एक वेब सर्वर एक अद्वितीय सेशन ID के साथ एक हिडन HTML फॉर्म फील्ड भेज सकता है जैसा कि नीचे दिखाया गया है -
<input type = "hidden" name = "sessionid" value = "12345">
इस एंट्री का मतलब है कि, जब फॉर्म सबमिट किया जाता है, तो निर्दिष्ट नाम और मान स्वचालित रूप से GET या POST डेटा में शामिल हो जाते हैं। हर बार जब वेब ब्राउज़र अनुरोध वापस भेजता है, तो session_id मान का उपयोग विभिन्न वेब ब्राउज़रों का ट्रैक रखने के लिए किया जा सकता है।
यह सेशन का ट्रैक रखने का एक प्रभावी तरीका हो सकता है लेकिन एक नियमित (<A HREF...>) हाइपरटेक्स्ट लिंक पर क्लिक करने से फॉर्म सबमिशन नहीं होता है, इसलिए हिडन फॉर्म फील्ड्स भी सामान्य सेशन ट्रैकिंग का समर्थन नहीं कर सकते।
URL रीराइटिंग
आप प्रत्येक URL के अंत में कुछ अतिरिक्त डेटा जोड़ सकते हैं। यह डेटा सेशन की पहचान करता है; सर्वर उस सेशन आइडेंटिफ़ायर को उस डेटा के साथ जोड़ सकता है जो उसने उस सेशन के बारे में संग्रहीत किया है।
उदाहरण के लिए, https://tutorialspoint.com/file.htm;sessionid=12345 के साथ, सेशन आइडेंटिफ़ायर sessionid = 12345 के रूप में जुड़ा हुआ है जिसे वेब सर्वर पर क्लाइंट की पहचान करने के लिए एक्सेस किया जा सकता है।
URL रीराइटिंग सेशन बनाए रखने का एक बेहतर तरीका है और उन ब्राउज़र्स के लिए काम करता है जब वे कुकीज़ का समर्थन नहीं करते हैं। खामी यह है कि आपको हर URL को डायनामिक रूप से जनरेट करना होगा ताकि सेशन ID असाइन किया जा सके भले ही पेज एक साधारण स्टैटिक HTML पेज हो।