1. Cookie \ Session \ Token的區別
10分鐘助你弄懂cookie、session、token 區別、用途!!!_嗶哩嗶哩_bilibili
(1)為什么要使用Cookie
? ? ? ? 在客戶端和服務端之間維持用戶登錄狀態
(2)為什么不能只使用Cookie
- Cookie保存在客戶端,可以被客戶端篡改,存在安全風險
- Cookie容量有限,只有4kb
- 用戶可以從服務端禁用Cookie
(3) Session輔助Cookie存儲用戶信息
我們往session中存儲用戶信息,服務器端保存session并通過響應頭中的set-cookie命令攜帶session信息,自動存儲session信息到cookie中。瀏覽器的下一次請求會把cookie傳送到服務端。
(4)Session的弊端
- 保存在服務端,占用服務器資源
- session信息在服務器集群中不可共享
- 跨域Cookie的傳遞很麻煩
(5)Token的改造
前端發起登錄請求到后端,后端對前端攜帶來的信息進行認證,認證成功后會生成jwt字符串(包含:Header頭部,Payload負載,Signature簽名?)并以“token:jwt”的形式返回到前端。前端通過base64方式對token的payload段進行解碼獲取信息。 在后續的請求中,前端發往后端的請求中都攜帶token,后端拿到token后進行jwt的解密并驗證signature,如果檢驗成功信息沒有被篡改,就會放行。
Token不依賴于session和cookie,對集群和前后端分離架構友好