Cookies & Sessions
ওয়েবসাইট তোমাকে মনে রাখে কীভাবে?
ওয়েবসাইট তোমাকে মনে রাখে কীভাবে?
Facebook একবার লগইন করলে পরের বার আর পাসওয়ার্ড চায় না। অথচ HTTP নিজে কিছু মনে রাখে না — প্রতিটি অনুরোধ আলাদা, আগেরটার কথা ভুলে যায় (Stateless)। তাহলে সাইট কীভাবে তোমাকে মনে রাখে?
সমস্যা — HTTP ভুলে যায় কেন?
HTTP প্রোটোকল ডিজাইনই হয়েছিল সরল দলিল-আদান-প্রদানের জন্য — প্রতিটি Request-Response জোড়া সম্পূর্ণ স্বতন্ত্র ঘটনা হিসেবে গণ্য হয়। তুমি পেজ-১ চাইলে, তারপর পেজ-২ চাইলে — সার্ভারের কাছে দুটো সম্পূর্ণ অচেনা অনুরোধ। সে জানে না এরা একই লোক পাঠিয়েছে। এই "Statelessness" ওয়েবকে সরল ও দ্রুত রাখে, কিন্তু লগইন-এর মতো ধারাবাহিকতা দরকারি কাজে সমস্যা তৈরি করে।
সমাধান ১ — Cookie
লগইন সফল হলে সার্ভার তোমার ব্রাউজারকে একটা ছোট তথ্য দেয় — Cookie। এর ভেতরে একটা অনন্য ID থাকে, যা ব্রাউজার নিজের কাছে সংরক্ষণ করে রাখে।
সার্ভার → "এই ID রাখো: abc123" → ব্রাউজার Cookie জমা রাখে
সমাধান ২ — Session
এর পর প্রতিটি অনুরোধের সাথে ব্রাউজার স্বয়ংক্রিয়ভাবে ওই Cookie পাঠায়। সার্ভার ID দেখে তার নিজের দিকের Session-এ মেলায় — "abc123 = রহিম, লগইন করা, শপিং কার্টে ৩টা পণ্য"।
| জায়গা | কী রাখে |
|---|---|
| Cookie (ব্রাউজারে) | শুধু একটি ছোট ID |
| Session (সার্ভারে) | আসল বিস্তারিত তথ্য — কে, কী কিনছে, কী পছন্দ |
কেন এভাবে ভাগ করা? Cookie-তে শুধু ID রাখলে ব্রাউজারে সংবেদনশীল তথ্য (পাসওয়ার্ড, ব্যক্তিগত ডেটা) কখনো পাঠাতে হয় না — সেসব নিরাপদে সার্ভারে থাকে, শুধু একটি চাবি (ID) আদান-প্রদান হয়।
Cookie কীভাবে "চেনে" এটা তুমি?
প্রতিবার ব্রাউজার নতুন অনুরোধ পাঠানোর সময় Cookie-টি Header-এ যুক্ত করে দেয় — এটি সম্পূর্ণ স্বয়ংক্রিয়, তুমি খেয়াল করো না। সার্ভার প্রতিটি অনুরোধে সেই ID পরীক্ষা করে বুঝে নেয় "এটা আগের সেই ব্যবহারকারী" — ঠিক যেন প্রতিবার তুমি একটি পরিচয়পত্র সাথে নিয়ে ঘুরছ।
বাস্তব জীবনের সাথে মিল
🏠 অ্যানালজি: এটা অনেকটা কনসার্টের ব্রেসলেটের মতো — প্রবেশপথে (লগইন) তোমার হাতে একটি ব্রেসলেট (Cookie/ID) পরিয়ে দেওয়া হয়। ভেতরে ঘুরতে ঘুরতে (নতুন পেজ ভিজিট) প্রতিবার নিরাপত্তারক্ষী তোমার পুরো পরিচয় যাচাই না করে শুধু ব্রেসলেট দেখেই বুঝে যায় তুমি অনুমোদিত অতিথি — আসল রেকর্ড (Session) থাকে অফিসের খাতায় (সার্ভারে)।
ব্যবহার
- লগইন মনে রাখা (তুমি আবার পাসওয়ার্ড দাও না)।
- শপিং কার্ট খালি না হওয়া (পেজ বদলালেও পণ্য কার্টে থেকে যায়)।
- ভাষা/থিম পছন্দ মনে রাখা।
- বিজ্ঞাপন ট্র্যাকিং (তুমি কী দেখেছ তা মনে রাখা — গোপনীয়তার প্রশ্ন তোলে)।
Cookie নিয়ে গোপনীয়তার প্রশ্ন
কিছু Cookie (Third-Party Cookie) তোমার ব্রাউজিং আচরণ বিভিন্ন ওয়েবসাইট জুড়ে ট্র্যাক করে, যা লক্ষ্যভিত্তিক বিজ্ঞাপনে ব্যবহৃত হয় — এ কারণেই অনেক ওয়েবসাইটে এখন "Cookie সম্মতি" পপ-আপ দেখা যায়, এটি গোপনীয়তা আইনের (যেমন GDPR) একটি অংশ।
🔗 HSC সিলেবাস সংযোগ
- অধ্যায় ৪: ওয়েবপেজ, ব্রাউজার, HTTP।
- অধ্যায় ১: Cookie ও ব্যক্তিগত তথ্য — গোপনীয়তা ও নৈতিকতা।
📝 HSC পরীক্ষার প্রস্তুতি
- Cookie কী? ব্রাউজারে সাইটের রাখা ছোট ডেটা ফাইল, সাধারণত একটি ID ধারণ করে।
- HTTP Stateless মানে? প্রতিটি অনুরোধ স্বাধীন, আগেরটা মনে রাখে না।
- Session কী? সার্ভারে রাখা ব্যবহারকারীর চলমান বিস্তারিত তথ্য।
- সাধারণ ভুল: Cookie-তে সব তথ্য (পাসওয়ার্ড) সরাসরি থাকে ভাবা — বাস্তবে শুধু একটি ID থাকে, আসল তথ্য সার্ভারের Session-এ।
📚 সারাংশ
HTTP কিছু মনে রাখে না। সার্ভার ব্রাউজারকে ID-সহ Cookie দেয় → প্রতি অনুরোধে Cookie ফেরে → সার্ভার Session-এ মিলিয়ে চেনে। তাই সাইট তোমাকে "মনে রাখে", যদিও অন্তর্নিহিত প্রোটোকলের কোনো স্মৃতি নেই।