Cookie和Session實現記住我的功能

2021-10-03 16:20:02 字數 932 閱讀 5339

cookie和session都是用來儲存使用者的一些資訊的,但是由於cookie儲存在瀏覽器中,所以相對不安全,後來就出現了session,session呢是儲存在伺服器端的,所以相對安全,在cookie中有乙個sessionid,用來唯一的對應伺服器端的乙個session,cookie的預設有效時間是-1,也就是當瀏覽器關閉的時候,cookie就會失效了,當再次開啟瀏覽器訪問伺服器的時候,伺服器會再次建立乙個cookie儲存到瀏覽器中,該cookie裡的sessionid會對應乙個唯一的session,而session的有效期預設是30分鐘(從最近一次訪問session計算30分鐘後失效)

當我們想要實現記住我的功能時,我們可以自己建立乙個cookie,儲存到瀏覽器中,然後當使用者登入的時候,我們只需要找到這個cookie,然後看看是否過期,來實現記住我的功能

cookie cookie = new cookie("rememberme","abc");

cookie.setmaxage(60*60*24);

resp.addcookie(cookie);

這樣我們就設定了乙個cookie儲存到了瀏覽器,每當使用者訪問伺服器時,我們就可以通過判斷該cookie是否存在來判斷使用者是否儲存了資訊,當然了,為了安全起見,我們應該把cookie的資訊儲存到資料庫乙份,每次判斷不僅要判斷是否存在該cookie,而且要看看,是否為該cookie(畢竟在瀏覽器中儲存的cookie不安全,萬一該cookie是偽造的呢),由於是記住我的功能,所以,當使用者第二天登入時,昨天的session資訊已經過期了,而我們為了安全,又沒有把使用者資訊儲存到cookie中,該怎麼辦呢,我們可以通過資料庫中儲存的那個cookie,並新增乙個userid的字段,這樣,我們就可以通過這個cookie來獲取到唯一的乙個使用者資訊了,然後我們把使用者的資訊通過setattribute()再存到session中,這樣就可以實現記住我的功能,並且使用者的資訊也可以得到唯一的對應

cookie和session和token是什麼?

什麼是session?什麼是cookie?什麼是token?1 cookie?由於http是一種無狀態協議,伺服器沒有辦法單單從網路連線上面知道訪問者的身份,為了解決這個問題,就誕生了cookie cookie實際上是一小段的4k文字資訊。客戶端請求伺服器,如果伺服器需要記錄該使用者狀態,就使用re...

Session和Cookie的區別

session和cookie的區別 1 儲存的位置不同 session儲存在伺服器端的記憶體中,占用伺服器資源。cookie是儲存在客戶端。可以是瀏覽器中或者是檔案中 2 儲存的時間不同 session是關閉當前會話相關瀏覽器後自動清空。cookie是根據過期時間而會有不同。3 安全性不同 sess...

cookie和session的區別

一 cookie機制和session機制的區別 具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。同時我們也看到,由於在伺服器端保持狀態的方案在客戶端也需要儲存乙個標識,所以session機制可能需要借助於cookie機制來達到儲存標識的目...