天天看點

session、cookie、token對比

一、cookie

cookie 指的是浏覽器裡面能永久存儲的一種資料,僅僅是浏覽器實作的一種資料存儲功能。

cookie由伺服器生成,發送給浏覽器,浏覽器把cookie以key value形式儲存到某個目錄下的文本檔案内,下一次請求同一網站時會把該cookie發送給伺服器。由于cookie是存在用戶端上的,是以浏覽器加入了一些限制確定cookie不會被惡意使用,同時不會占據太多磁盤空間,是以每個域的cookie數量是有限的(一般限制為20個)。

二、session

為了區分請求的來源,伺服器就要給每個用戶端配置設定不同的“身份辨別”,然後用戶端每次向伺服器發請求的時候,都帶上這個“身份辨別”,伺服器就知道這個請求來自于誰了,用戶端一般将這個辨別儲存到cookie。

伺服器使用session把使用者的資訊臨時儲存在了伺服器上,使用者離開網站後session會被銷毀。這種使用者資訊存儲方式相對cookie來說更安全,可是session有一個缺陷:如果web伺服器做了負載均衡,那麼下一個操作請求到了另一台伺服器的時候session會丢失

三、token

特點:

1.無狀态、可擴充(無須存在cookie或session)

2.支援移動裝置

3.跨程式調用

4.安全(每個token都有單獨的簽名加密,不易破解)

一般請求過程:

1.使用者通過使用者名和密碼發送請求。

2.程式驗證。

3.程式傳回一個簽名的token(可設定有效時間) 給用戶端。

4.用戶端儲存token,并且每次用于每次發送請求。

5.服務端驗證token并傳回資料。(校驗成功則放行,失敗則提示錯誤資訊)