session和token都是用來保持會話,功能相同
不同的使用者訪問服務端的時候會在session物件中儲存鍵值對,「鍵」用來儲存開啟這個使用者資訊的「鑰匙」,在登入成功後,「鑰匙」通過cookie返回給客戶端,客戶端儲存為sessionid記錄在cookie中。當客戶端再次訪問時,會預設攜帶cookie中的sessionid來實現會話機制。
cookie的資料4k左右
cookie儲存資料的格式:字串key=value
cookie儲存有效期:可以自行通過expires進行具體的日期設定,如果沒設定,預設是關閉瀏覽器時失效。
cookie有效範圍:當前網域名稱下有效。所以session這種會話儲存方式方式只適用於客戶端**和服務端**執行在同一臺伺服器上(前後端專案協議、網域名稱、埠號都一致,即在乙個專案下)
用於解決重啟伺服器後session就消失的問題。在資料庫中儲存session,而不是儲存在記憶體中。通過包:express-mysql-session
當客戶端儲存的cookie失效後,服務端的session不會立即銷毀,會有乙個延時,服務端會定期清理無效session,不會造成無效資料占用儲存空間的問題。
請求登入時,token和sessionid原理相同,是對key和key對應的使用者資訊進行加密後的加密字元,登入成功後,會在響應主體中將返回給客戶端。客戶端通過cookie、sessionstorage、localstorage都可以進行儲存。再次請求時不會預設攜帶,需要在請求***位置給請求頭中新增認證欄位authorization攜帶token資訊,伺服器端就可以通過token資訊查詢使用者登入狀態。
token和session的區別
1.為什麼要有session的出現?答 是由於網路中http協議造成的,因為http本身是無狀態協議,這樣,無法確定你的本次請求和上次請求是不是你傳送的。如果要進行類似論壇登陸相關的操作,就實現不了了。2.session生成方式?答 瀏覽器第一次訪問伺服器,伺服器會建立乙個session,然後同時為...
session 和token 的區別
目錄 一 session的狀態保持及弊端 二 token認證機制 當使用者第一次通過瀏覽器使用使用者名稱和密碼訪問伺服器時,伺服器會驗證使用者資料,驗證成功後在伺服器端寫入session資料,向客戶端瀏覽器返回sessionid,瀏覽器將sessionid儲存在cookie中,當使用者再次訪問伺服器...
session和token的區別
為什麼要有session的出現?答 是由於網路中http協議造成的,因為http本身是無狀態協議,這樣,無法確定你的本次請求和上次請求是不是你傳送的。如果要進行類似論壇登陸相關的操作,就實現不了了。session生成方式?答 瀏覽器第一次訪問伺服器,伺服器會建立乙個session,然後同時為該ses...