Session是通過Cookie來傳id的

2021-07-22 06:27:28 字數 1258 閱讀 2531

根據情況當這句**需要建立session的時候,伺服器每建立乙個session都會有乙個想對應的session_id,並且伺服器會把這個session_id號,會以cookie的形式

回寫給客戶端(瀏覽器),下次同乙個使用者訪問的時候會帶這個session_id號過來的。

這樣有時候就會出現乙個問題,當你把客戶端(瀏覽器)關閉的時候,如果不小心關閉了瀏覽器,那麼cookie就不存在了。

例如常見的購物車功能,在購物的時候,不小心關閉了瀏覽器,該使用者下次再來訪問的時候,上次的記錄就不存在了,

所以當session建立的時候,可以把對應建立的session_id存到乙個設定有效期的的cookie當中,那麼在你關閉瀏覽器的時候,在較短時間內,再次開啟瀏覽器,上次的瀏覽

記錄依然還是在的:

通過以下**可以去實現:

cookie cookie = new cookie("jsessionid", session_id);//session_id預設是存放在乙個name為jsessioinid裡面的

cookie.setpath("上次路徑");

cookie.setmaxage(30 * 60);// 30 分鐘

response.addcookie(cookie);

2、這裡又有了另外乙個問題,為什麼我上面這段**設定了cookie的生命週期,再次開啟瀏覽器的時候,這個cookie還在呢;而當你建立session並且預設以cookie的形式

回寫給客戶端的時候,不小心關閉了瀏覽器,再次開啟的時候cookie卻不存在了?

這裡我在網上查閱下關於cookie的乙個生命週期的問題:

cookie如果不設定過期時間,則表示這個cookie生命週期為瀏覽器會話期間,只要關閉瀏覽器視窗,cookie就消失了。這種生命期為瀏覽會話期的cookie被稱為會話cookie。會話cookie一般不儲存在硬碟上而是儲存在記憶體裡。

如果設定了過期時間,瀏覽器就會把cookie儲存到硬碟上,關閉後再次開啟瀏覽器,這些cookie依然有效直到超過設定的過期時間。儲存在硬碟上的cookie可以在不同的瀏覽器程序間共享,比如兩個ie視窗。而對於儲存在記憶體的cookie,不同的瀏覽器還有不同的處理方式。

Django中session和cookie的用法

session 存在伺服器端,用request物件進行設定 設定session 在後端寫入 request.session money 100 缺省會在cookie中產生乙個sessionid 獲取session值 只能在後端獲取 print request.session.get money co...

php個人總結 session和cookie

1.cookie與session的關係 cookie和session的方案雖然分別屬於客戶端和服務端,但是服務端的session的實現對客戶端的cookie有依賴關係的 步驟大概如下 1.服務端執行session機制 2.生成對應而唯一的session id 通過對這個session id的解析和處...

Cooki和session的區別和原理

1 cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。2 cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙 考慮到安全應當使用session。3 session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用你伺服器的效能 考慮到減輕伺服器效...