cookie和session的的區別以及使用示例?

2022-09-15 17:12:18 字數 3781 閱讀 2251

本篇文章並非本人所創,實質借鑑於一篇知乎文章,內容寫的很是生動有趣,通俗易懂,以此來作為筆記時刻翻看回味。

這倆貨平時非常低調,不是很出挑。session相對來說稍微會好一些,j**a程式猿們日常多少會接觸點,用session域訪問物件啥的。但這個cookie,估計大部分j**a程式猿,平時不要說用到,連這個單詞都很少敲。而且cookie說起來吧,位置有點特殊。前端的人覺得它和後端沾親帶故,後端的人覺得這玩意就是前端搞的,關我屁事。如此一來,誰都沒把它當回事兒。

性質

cookie

session

不同點預設儲存在客戶端瀏覽器記憶體,瀏覽器關閉,會話結束

預設存在服務端,session失效,會話結束

安全性不安全,別人可以檢視你的電腦竊取你瀏覽器中的使用者名稱和密碼明文,所以現在登入也有使用手機簡訊驗證碼登入的

相對來說比較安全

相同點用來跟蹤瀏覽器使用者身份的會話方式

用來跟蹤瀏覽器使用者身份的會話方式

伺服器端如何將cookie發給瀏覽器呢?

因為現在客戶端已經有cookie了,所以往後每次訪問該伺服器,都會帶上這個cookie。那麼,如何在伺服器端得到客戶端帶來的cookie呢?

上面**中,伺服器向瀏覽器響應的cookie就是會話cookie。會話cookie被儲存在瀏覽器的記憶體中,當瀏覽器關閉時,記憶體被釋放,記憶體中的cookie自然也就煙消雲散。

這樣太麻煩了,關閉瀏覽器引發cookie消失,下次還要重新登入。能不能向客戶端響應永續性cookie呢?答案是可以的,只要設定cookie的持久化時間即可!

小結:相比較cookie存在客戶端,session則是服務端的東西。其本質上類似於乙個大map,裡面的內容,以鍵值對的形式儲存。

這回,我們不再把"name=br**a1988;time=6pm;table=69"這樣的資料作為cookie放在請求頭/響應頭里傳來傳去了,而是只給客戶端傳乙個jsessionid(其實也是乙個cookie)!此時,真正的資料存在伺服器端的session中,cookie中只是存了session的id,即jsessionid。下次訪問該**時,把jsessionid帶上,即可在伺服器端找到對應的session,也相當於「帶去」了使用者資訊。

現在,我請大家重新仔細看一下上面設定jsessionid到cookie的**。

其實,只要你在伺服器端建立了session,即使不寫addcookie("jsessionid", id),jsessionid仍會被作為cookie返回。

import j**ax.servlet.servletexception;

Session和Cookie的區別

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

cookie和session的區別

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

cookie和session的區別

分類 計算機網路 2011 10 21 10 43 4785人閱讀收藏 舉報 session 瀏覽器伺服器 servlet url儲存 一 cookie機制和session機制的區別 具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。同時我...