HTTP একটি "stateless" প্রোটোকল, অর্থাৎ প্রতিবার ক্লায়েন্ট একটি ওয়েবপেজ রিকোয়েস্ট করলে, ক্লায়েন্ট ওয়েব সার্ভারের সাথে একটি পৃথক সংযোগ খোলে এবং সার্ভার স্বয়ংক্রিয়ভাবে পূর্বের ক্লায়েন্ট রিকোয়েস্টের কোনো রেকর্ড রাখে না।
ওয়েব ক্লায়েন্ট এবং সার্ভারের মধ্যে সেশন মেইনটেইন করার পদ্ধতিগুলো
১. কুকিজ (Cookies)
একটি ওয়েব সার্ভার প্রতিটি ওয়েব ক্লায়েন্টের জন্য একটি ইউনিক সেশন আইডি কুকি হিসেবে অ্যাসাইন করতে পারে এবং পরবর্তী রিকোয়েস্টগুলোতে সেই কুকি গ্রহণ করে ক্লায়েন্টকে চেনে নেয়।
সীমাবদ্ধতা: ব্রাউজার কখনো কুকি সাপোর্ট করে না। সেশন মেইনটেইন করার জন্য এই পদ্ধতি রিকমেন্ড করা হয় না।
২. হিডেন ফর্ম ফিল্ডস (Hidden Form Fields)
ওয়েব সার্ভার একটি হিডেন HTML ফর্ম ফিল্ড পাঠাতে পারে ইউনিক সেশন আইডিসহ:
<input type = "hidden" name = "sessionid" value = "12345">
ফর্ম সাবমিট হলে নির্দিষ্ট নাম এবং মান স্বয়ংক্রিয়ভাবে GET বা POST ডেটায় অন্তর্ভুক্ত হয়। প্রতিবার ব্রাউজার রিকোয়েস্ট পাঠালে session_id মান ব্যবহার করে বিভিন্ন ব্রাউজার ট্র্যাক করা যায়।
সীমাবদ্ধতা: রেগুলার হাইপারটেক্সট লিংক (<A HREF...>) ক্লিক করলে ফর্ম সাবমিশন হয় না, তাই হিডেন ফর্ম ফিল্ডও জেনারেল সেশন ট্র্যাকিং সাপোর্ট করে না।
৩. URL রি-রাইটিং (URL Rewriting)
প্রতিটি URL-র শেষে কিছু এক্সট্রা ডেটা অ্যাপেন্ড করা যায়। এই ডেটাটি সেশন শনাক্ত করে; সার্ভার সেই সেশন আইডেন্টিফায়ারের সাথে সংরক্ষিত ডেটা অ্যাসোসিয়েট করতে পারে।
উদাহরণ: https://tutorialspoint.com/file.htm;sessionid=12345 — এখানে সেশন আইডেন্টিফায়ার যুক্ত হয়েছে sessionid = 12345 হিসেবে, যা ওয়েব সার্ভারে ক্লায়েন্ট শনাক্ত করতে অ্যাক্সেসযোগ্য।
ফায়দা: কুকি সাপোর্ট না করলে(URL রি-রাইটিং ভালো পদ্ধতি।
অপসার: প্রতিটি URL ডাইনামিক্যালি জেনারেট করতে হয় সেশন আইডি অ্যাসাইন করার জন্য, মাত্র একটি সিম্পল স্ট্যাটিক HTML পেজ হলেও।