SessionID.cookie,Session傻傻分不清楚??
Http協議是無狀態協議,他是一個 請求->處理->回應 模型
所以每次請求都不會紀錄上次執行的動作,
如果這這樣我們如何執行判斷使用者是否經在我們系統登入了
Cookie vs Session
儲存位置 | ||
Cookie | Client side | |
Session | Server side (通常放在Server記憶體或DB) |
Server如何區別每個人的Session資料呢?
瀏覽器在第一次請求網站時,沒有SessionId的cookie,伺服器就會幫我們產生一個新的
這個就可以想成是我們的置物櫃鑰匙,瀏覽器在下次請求時會將此cookie一併傳到伺服器端
伺服器會判斷是否有此SessionId如果有我們就可以使用Session裡的東西了
舉例:
在說明實現之前,我來說個生活化的東西幫助大家記憶
大家在買飲料的時候,我們付完錢後店員會給我們一個號碼牌
我們要拿飲料時就可以依據此號碼牌
上面的過程很類似Http過程
付完錢後店員不會記得你是誰,店員會給你一個號碼牌來當取飲料的依據
在登入帳號時你選上記住密碼在伺服器端檢查執行:
* 帳號的正確性
* 判斷是否是否記住密碼,有選擇記住密碼Server會跟瀏覽器說要寫入cookie內容就是可以識別此會員的資訊
下次再訪問網站的時候伺服器就可以依據此cookie來判定是否已經登入
注意:cookie存在客戶端 不要存放一些敏感資料,而且存放前要加密
【C#】我們來土砲一個 Asp.net Session (Session核心原理)
參考網址:
https://cnodejs.org/topic/550164ba73263b0e4eef9a81
http://fred-zone.blogspot.tw/2014/01/web-session.html
如果本文對您幫助很大,可街口支付斗內鼓勵石頭^^