🚀 前言

在使用網站時,你是否想過:

  • 為什麼重新整理頁面後仍然保持登入?
  • 為什麼購物車的商品不會突然消失?
  • 為什麼網站能記住你的語言或主題設定?

這些便利功能背後,都依賴 Cookie 與 Session

本文將以最生活化的方式,帶你理解:

  • 網站如何「記住你」
  • Cookie 與 Session 的差異
  • 它們在登入與使用者識別中的角色

✅ 基礎概念

Cookie 就像放在你瀏覽器裡的一張小紙條。

網站本身不會記得你是誰,因此會把一段小資訊(Cookie)交給你的瀏覽器保存。

Cookie 的特性:

  • 儲存在瀏覽器端
  • 內容是小型文字資料
  • 每次向網站發送請求時會自動附帶

常見用途:

  • 記住登入狀態
  • 保存語言、主題等偏好
  • 分析與廣告追蹤(如 Google Analytics)

🔐 Session 是什麼?

Session 就像伺服器替你準備的一個私人儲物櫃。

當你登入時,伺服器會建立一個 Session,裡面放:

  • 使用者 ID
  • 登入狀態
  • 其他必要資訊

Session 的特性:

  • 儲存在伺服器端
  • 以 Session ID 作為識別
  • 用於管理登入期間的資料

兩者通常是 一起使用 的。

流程如下:

  1. 使用者登入
  2. 伺服器建立 Session(儲物櫃)
  3. 伺服器把 Session ID(鑰匙)放進 Cookie
  4. 瀏覽器下次訪問時會自動帶上 Cookie
  5. 伺服器根據 Session ID 找到對應的 Session
  6. 成功還原登入狀態

Cookie = 鑰匙
Session = 儲物櫃


  • 每次都要重新登入
  • 購物車內容會消失
  • 語言、主題設定無法保存
  • 網站無法辨識使用者

因為 HTTP 是「無狀態(Stateless)」的協定,每次請求都是獨立的,因此需要 Cookie/Session 來補足「記憶能力」。


💡 小知識與補充

Cookie 的命名靈感來自美國的 幸運籤餅(Fortune Cookie)
因為裡面藏著一張小紙條,與 Cookie 儲存小資訊的概念相似。


🔑 Session ID 是絕對不能外洩的「鑰匙」

若 Session ID 被竊取,攻擊者就能冒充你的身分登入網站。

因此網站會採取以下安全措施:

  • 使用 HTTPS 加密
  • 設定 Cookie 的 Secure、HttpOnly 屬性
  • 設定短效期
  • 避免在 URL 中傳遞 Session ID(技術上錯誤的做法,已被淘汰)

Cookie 有有效期限,到期後會自動消失。
若你突然被登出,可能是 Cookie 過期或被清除。


📚 參考資料

官方文件

Wikipedia


🛠️ 延伸閱讀(建議下一步)

  • HTTP 的 Stateless 特性
    Coming Soon

    Coming Soon

  • HTTPS 與安全性
    Coming Soon

    Coming Soon

  • JWT(JSON Web Token)
    Cookie/Session 的替代方案
  • SameSite、Secure 屬性
    提升 Cookie 安全性
  • LocalStorage / SessionStorage
    了解瀏覽器端更多儲存方式

🎯 總結

  • Cookie 是瀏覽器的小紙條
  • Session 是伺服器的私人儲物櫃
  • Cookie 通常存放 Session ID(鑰匙)
  • 兩者搭配才能記住登入狀態、購物車、偏好設定
  • Session ID 必須妥善保護
  • 想更深入可學習 HTTP、HTTPS、JWT 等主題