1. 程式人生 > >web---session和cookie的區別和聯絡

web---session和cookie的區別和聯絡

1. 區別

它們都是使用鍵值的方式來為客戶端儲存一些伺服器的資訊,區別在於:

cookie是將這些資訊儲存在瀏覽器端,伺服器關閉cookie就會消亡,除非設有存活時間。session是將這些資訊儲存在伺服器端,預設兩次訪問之間儲存30分鐘,時間段後session值也會消亡。

每個客戶端為某一網站儲存的cookie個數和大小是有限制的,個數一般是
30~50/domain,大小一般是4k/cookie左右; 而伺服器的每個session儲存的信
息理論上是無限的,僅受限於伺服器的記憶體容量。不過可以想到伺服器要同時
很多客戶端請求,每個session雖然佔用的記憶體不多,但多個客戶累積起來就非
常可觀了。所以session中不建議儲存過多資訊,可以選擇將資料儲存在資料庫
或快取當中。

安全性上來講,因為cookie會隨著每次請求傳遞,被截獲的風險很大,另外
cookie因為是儲存在客戶端的,因此洩露的可能更高。

2. 聯絡

session 與客戶端瀏覽器的對應關係通過cookie來實現: 當伺服器為某一客戶端首
次建立session時,會將一個 JSESSIONID=唯一值 的會話cookie返回給客戶端瀏覽
器,當瀏覽器向此伺服器傳送接下來的請求時,會攜帶此 JSESSIONID=唯一值 的
cookie,伺服器從而可以通過它找到此客戶端對應的session。