token、cookie、session的區別


一、三者的定義

Cookie是瀏覽器用來保存用戶信息的文件,可以保存比如用戶是誰,購物車有哪些商品等。

Session是一次會話,會話是指我們訪問網站的一個周期。

比如用戶打開一個瀏覽器訪問某個位的站點。
在這個站點點擊多個超鏈接查看各個網頁,然后關閉瀏覽器,整個過程稱之為一個會話。
token是服務器返回的一個臨時簽名數據, 可以使用這個簽名數據表面用戶身份. 

 

為什么會有這三個東西呢?  都是一個目的, 服務器需要知道和自己通話的人是誰, 專業一點就是 服務器需要用某種機制來識別具體的用戶.

這要從HTTP協議開始說起, HTTP協議是無狀態的協議。一旦數據交換完畢,客戶端與服務器端的連接就會關閉,再次交換數據需要建立新的連接。這就意味着服務器無法從連接上跟蹤會話, 自然無法識別用戶, 所以誕生了Cookie,session和token

二、三者的比較

cookie : 

1. cookie由服務器生成,保存在客戶端瀏覽器。

2. 容易被劫持,不安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙。

3. cookie可以被用戶禁止

4. 容量小, 單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。

session

1. session是由應用服務器維持的一個服務器端的存儲空間, 沒有對存儲的數據量的限制,可以保存更為復雜的數據類型.

2. session 默認被存在在服務器的一個文件里, 但是實際中可以放在 文件、數據庫、或內存中都可以。

3. 當用戶量增多時,會對服務器造成較大壓力。

4. Session的實現方式大多數情況用Cookie保存的,但是也可以使用URL地址重寫。

5. 較安全,用戶驗證這種場合一般會用 session, 比如金融銀行類的產品, 

token

1.無狀態、可擴展

2.支持移動設備

3.跨服務器調用

4.安全


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM