一、三者的定義

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小時