Cookie與Session的差異

Http本身是無狀態的,每次request都是各自獨立,但在有權限控管的情境下總不能讓使用者每次操作都要輸入一次帳密,因而延伸出許多記錄狀態的解決方案,其中常見的就是Cookie與Session。平常在使用時沒深入研究兩者的差異,因此找個時間簡單紀錄一下兩者的特性。

Cookie:

  • 保存在client端
  • 有被竄改的風險,不建議儲存機敏資料
  • 每次request都會帶著cookie,若cookie保存大量資料的話會讓傳輸資料量變得肥大

Session:

  • 保存在Server端
  • 一般會將Session ID記錄在cookie中
  • 若Server端有做負載平衡,Session需要另外做處理(存在資料庫之類的)

參考資料: