Session Management فرآیند مدیریت وضعیت (State) کاربر بین درخواستهای مختلف HTTP است.
چون HTTP بهصورت پیشفرض Stateless است، باید با مکانیزمهایی مثل Cookie یا Token هویت کاربر را حفظ کنیم.
Authentication → شناسایی کاربر (Who are you?)
Authorization → تعیین دسترسی (What can you do?)
در این مدل، سرور یک Session ID ایجاد کرده و در Cookie مرورگر ذخیره میشود.
Login
Server → ایجاد Session
Client → ذخیره Cookie
هر request → Cookie ارسال میشود
Cookie: sessionId=abc123
Stateful
وابسته به Server
ذخیره در Browser
مناسب Web applications
ساده
کنترل کامل روی session
مقیاسپذیری سخت
وابستگی به سرور
مشکل در Microservices
در این روش، سرور یک Token (مثل JWT) صادر میکند و Client آن را در هر request ارسال میکند.
Authorization: Bearer eyJhbGciOi...
Stateless
قابل استفاده در API و Microservices
قابل انتقال بین سیستمها
مقیاسپذیر
مناسب موبایل و SPA
بدون نیاز به session server
مدیریت revoke سختتر
امنیت وابسته به token handling

بررسی هویت کاربر
Login process
بررسی سطح دسترسی
Role-based access
هر request مستقل است
session باید جدا مدیریت شود
session hijacking
CSRF attacks
server memory overload
token leakage
no immediate revocation
JWT misuse
HTTPS الزامی
token expiration
refresh token mechanism
Backend Tester باید بررسی کند:
آیا Authorization header enforce شده؟
آیا cookie session معتبر است؟
آیا expired token reject میشود؟
آیا unauthorized request → 401 میدهد؟
آیا forbidden access → 403 میدهد؟
اشتباه گرفتن Authentication و Authorization
فکر کردن Cookie و Token هر دو stateless هستند
نادیده گرفتن HTTPS requirement
عدم درک session persistence
confusion بین 401 و 403
در پاسخ کامل باید این کلیدواژهها باشند:
Session Management, Authentication, Authorization, Cookie, Session ID, Token, JWT, Bearer Token, Stateless, Stateful, HTTP Statelessness, Security
Session Management در API برای مدیریت وضعیت کاربر بین درخواستها استفاده میشود، زیرا HTTP ذاتاً stateless است. در روش Cookie-based، سرور یک session ایجاد کرده و آن را در cookie ذخیره میکند (stateful). در روش Token-based، سرور یک token مانند JWT صادر میکند و client آن را در هر request ارسال میکند (stateless). Authentication برای شناسایی کاربر و Authorization برای تعیین سطح دسترسی استفاده میشود.
Session Management Authentication Authorization Cookie Session ID Token JWT Bearer Token Stateless Stateful API Security HTTP Statelessness Login Session
Session Management (مدیریت وضعیت کاربر): برای حفظ هویت کاربر بین درخواستهای HTTP استفاده میشود.
Cookie-based Authentication (احراز هویت مبتنی بر کوکی): session در سمت سرور ذخیره میشود و در cookie ارسال میگردد.
Token-based Authentication (احراز هویت مبتنی بر توکن): از token مانند JWT برای احراز هویت stateless استفاده میشود.
Session یعنی:
👉 “چطور سیستم بفهمد این درخواست از همان کاربر قبلی است”