具體來說 cookie 是保存在“客戶端”的,而session是保存在“服務端”的 cookie 是通過擴展http協議實現的 cookie 主要包括 :名字,值,過期時間,路徑和域; 如果cookie不設置生命周期,則以瀏覽器關閉而關閉,這種cookie一般存儲在記憶體而不是硬碟上.若設置了生命周期 ...
具體來說 cookie 是保存在“客戶端”的,而session是保存在“服務端”的
cookie 是通過擴展http協議實現的
cookie 主要包括 :名字,值,過期時間,路徑和域;
如果cookie不設置生命周期,則以瀏覽器關閉而關閉,這種cookie一般存儲在記憶體而不是硬碟上.若設置了生命周期則相反,不隨瀏覽器的關閉而消失,這些cookie仍然有效直到超過設定的過 期 時間。
session 一種類似散列表的形式保存信息,
當程式需要為某個客戶端的請求創建一個session時,伺服器首先檢查這個客戶端的請求里是否已包含了一個session標識
(稱為session id),如果已包含則說明以前已經為此客戶端創建過session,伺服器就按照session id把這個session檢索出來
使用(檢索不到,會新建一個),如果客戶端請求不包含session id,則為此客戶端創建一個session並且生成一個與此session相
關聯的session id,session id的值應該是一個既不會重覆,又不容易被找到規律以仿造的字元串,這個session id將被在本次響應
中返回給客戶端保存。保存這個session id的方式可以採用cookie,這樣在交互過程中瀏覽器可以自動的按照規則把這個標識發送給
伺服器。一般這個cookie的名字都是類似於SEEESIONID。但cookie可以被人為的禁止,則必須有其他機制以便在cookie被禁止時
仍然能夠把session id傳遞迴伺服器。
優缺點:
1、cookie數據存放在客戶的瀏覽器上,session數據放在伺服器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE併進行COOKIE欺騙
考慮到安全應當使用session。
3、session會在一定時間內保存在伺服器上。當訪問增多,會比較占用你伺服器的性能
考慮到減輕伺服器性能方面,應當使用COOKIE。
4、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
5、所以個人建議:
將登陸信息等重要信息存放為SESSION
其他信息如果需要保留,可以放在COOKIE中