一、三者的定義
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.安全
每天堅持學習1小時