- Stateful Auth β Session Cookie
- Stateless Auth β JWT (JSON Web Token)
-
User Sends Login Request
- User username + password bhejta hai server ko.
-
Server Authorises Login
- Agar credentials sahi hain, server ek session banata hai database me (Redis / SQL etc).
- Ek unique session ID generate hoti hai.
-
Server Sends Cookie
- Server ek cookie send karta hai client ko, jisme session ID hota hai.
-
Client Subsequent Requests
- Jab user next request karega, browser apne aap cookie attach karke bhejega.
-
Server Validation
- Server cookie ke andar ka session ID uthata hai.
- Database me check karta hai ki valid session hai ya nahi.
- Agar valid hai β requested page/data return kar deta hai.
- Server
Set-Cookieheader ke through client ko cookie bhejta hai. - Example:
Set-Cookie: sessionId=abc123; HttpOnly; Secure
- Browser ke cookie storage me save hoti hai.
- Session ya persistent dono ho sakti hai.
- Har request ke saath, browser automatically cookies attach karta hai (agar domain match karta ho).
- Server incoming request me cookie uthata hai.
- Uske session ID ko database me verify karta hai.
- Mostly auth (login session maintain karne ke liye).
- Lekin small data (preferences, tracking info) bhi store karte hain.
-
Session Cookies
- Browser band hote hi delete ho jati hain.
- Sirf ek session tak survive karti hain.
-
Persistent Cookies
- Ek expiry date/time set hoti hai.
- Browser band hone ke baad bhi rehti hain, jab tak expire na ho.
- Incognito Mode β session cookies banengi, but browser band hote hi sab clear ho jayega.
- Tracking issues: Persistent cookies ka misuse advertisers karte hain.
| Storage Type | Auto-send with Req? | Lifetime | Use Case |
|---|---|---|---|
| Cookies | β Yes | Session or Persistent | Auth (session mgmt), small data |
| Local Storage | β No | Until manually cleared | User preferences, caching |
| Session Storage | β No | Tab/browser close hone tak | Temporary data, form inputs |
-
Cookie Storage
- Auth ke liye best, kyunki har request ke sath server ko jati hai.
- Session + Persistent dono support karti hai.
-
Local Storage
- Data manually use karna padta hai (apne aap request me nahi jata).
- Long-term data store karne ke liye useful.
-
Session Storage
- Sirf ek tab/session tak kaam karta hai.
- Temporary data store karne ke liye use hota hai.
β Summary:
- Session Cookie = server me session store hota hai (stateful).
- JWT = client ke pass token hota hai (stateless).