1、session(賽神)會話機制
-
session 會話機制會借助 cookie + session 一起來做認證
-
cookie 是放在瀏覽器中的,cookie 是存儲在客服端,但是可以由服務端和客戶端生成。
-
sesion 是保存在服務端的數據庫中的,session 是服務端一塊存儲空間,只能由服務端生成。
-
session 是把 session id 也就是session 的 key 值,保存到 cookie 當中
-
這個 key 值 一般在訪問其他頁面的時候會放到 cookie 當中,向后端發起請求
-
當用戶輸入賬號和密碼登錄后,服務端會返回用戶的session id 把他放在cookie中這就是session機制認證
2、token(套肯)安全令牌機制
-
token 不依賴服務器資源
-
token 服務端生成的
-
往往會將 token 放在瀏覽器中,請求頭中
-
當用戶輸入賬號和密碼后,后端將他的安全令牌作為相應數據返回給我,那就是 token 令牌機制
-
當用戶輸入賬號和密碼后,會返回一個 token ,絕大多數情況下會 通過前端的工程師放到請求頭當中,然后再去發起請求
-
用的最多的是 jwt token 機制
-
瀏覽器接收到響應報文之后,會將 token 放在 local storage (本地存儲空間)/ session storage
3、鑒權
是指驗證用戶是否擁有訪問系統的權利---鑒定權限
4、為什么會有cookie、session、和token?
-
http是無狀態協議
-
cookie 緩存
-
大部分存在瀏覽器中,是客戶端的緩存
-
主要是 name 和 value 的存儲
-
-
session 會話
-
存儲在服務器當中
-
是瀏覽器 和 服務器 之間的驗證
-
5、cookie 和 session 區別
-
cookie:客戶端和服務端都能生成 cookie,存放在客戶端。存放一些不敏感的數據,數據類型只能是字符串
-
session:服務端生成 的 session , 存放在服務端,可以存放任意數據,Java 中 session 中可以存放任意對象,session 必須依賴 cookie 實現
6、session 和 token 的區別
-
session
-
session 是服務器生成、存儲、驗證,以 cookie 的方式傳給客戶端,客戶端以同樣方式(cookie)發送給服務端
-
session 有狀態
-
-
token
-
是加密字符串
-
服務器生成、驗證,以 cookie 或者 請求頭的方式傳給客戶端,客戶端以同樣方式(cookie)發送給服務端
-
token無狀態
*******請大家尊重原創,如要轉載,請注明出處:轉載自:https://www.cnblogs.com/shouhu/ 謝謝!!*******