首頁技術(shù)文章正文

cookie和session的區(qū)別和用法【Java面試題解析】

更新時間:2020-11-17 來源:黑馬程序員 瀏覽量:

1577370495235_學IT就到黑馬程序員.gif

(1)問題分析

考官主要是針對你對javaweb會話跟蹤技術(shù)的考核, 比如:cookie被用戶禁用怎么辦?

(2) 核心答案解析

1)cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務器上。

2)cookie并不是很安全,別人可以分析存放在本地的cookie并進行cookie欺騙,考慮到安全應當使用session。

3)session會在一定時間內(nèi)保存在服務器上。當訪問增多,會比較占用你服務器的性能,考慮到減輕服務器性能方面,應當使用cookie。

4)單個cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。

5)可以考慮將登陸信息等重要信息存放為session,其他信息如果需要保留,可以放在cookie中。

6)session會在瀏覽器關(guān)閉或者一段時間內(nèi)銷毀而cookie將持久化的存放在客戶端

一般情況下,session生成的sessionid都是保存在cookie中。

(3)問題擴展

cookie被用戶禁用怎么辦?可以使用URL地址重寫是對客戶端不支持Cookie的解決方案。URL地址重寫的原理是將該用戶Session的id信息重寫到URL地址中。服務器能夠解析重寫后的URL獲取Session的id。這樣即使客戶端不支持Cookie,也可以使用Session來記錄用戶狀態(tài)。

(4)結(jié)合項目使用

1)判斷用戶是否登陸過網(wǎng)站,以便下次登錄時能夠直接登錄。如果我們刪除cookie,則每次登錄必須從新填寫登錄的相關(guān)信息。

2)另一個重要的應用是“購物車”中類的處理和設(shè)計。用戶可能在一段時間內(nèi)在同一家網(wǎng)站的不同頁面選擇不同的商品,可以將這些信息都寫入cookie,在最后付款時從cookie中提取這些信息,當然這里面有了安全和性能問題需要我們考慮了。


猜你喜歡:

Java類加載機制詳解 

Java中如何創(chuàng)建線程? 

樂觀鎖和悲觀鎖分別是什么? 

Java高級軟件工程師培訓課程 

分享到:
在線咨詢 我要報名
和我們在線交談!