🎯 什麼情境該想到我
當你「希望伺服器保持無狀態、好隨意加機器做水平擴展」的時候。
⚙️ 怎麼用(步驟 / 公式)
意圖:把整段會話狀態存在用戶端,伺服器每次請求都能無狀態處理。
做法要點:
- 把狀態序列化後存進 cookie、表單隱藏欄位或 URL 參數,隨每次請求送回伺服器。
- 伺服器不保存任何會話資料,因此任何一台都能處理任何請求,最利於叢集與容錯。
- 適合狀態量小的情況;資料越少越簡單。
🧪 我實際套用的紀錄
- (待填)
⚠️ 注意 / 什麼時候不適用
- 大小受限(cookie/URL 有長度上限),狀態一大就不適用。
- 安全性風險:資料在用戶端可被竄改或窺看,需加密與簽章驗證。
- 每次請求都要來回傳輸整段狀態,量大時浪費頻寬。
🔗 相關工具
- 伺服器會話狀態 Server Session State(存在伺服器端,最簡單但影響擴展)
- 資料庫會話狀態 Database Session State(存進資料庫,跨伺服器共享且可容錯)
- 企業應用架構模式