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

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

更新時(shí)間:2020-11-17 來(lái)源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif

(1)問(wèn)題分析

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

(2) 核心答案解析

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

2)cookie并不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙,考慮到安全應(yīng)當(dāng)使用session。

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

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

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

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

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

(3)問(wèn)題擴(kuò)展

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

(4)結(jié)合項(xiàng)目使用

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

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


猜你喜歡:

Java類加載機(jī)制詳解 

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

樂(lè)觀鎖和悲觀鎖分別是什么? 

Java高級(jí)軟件工程師培訓(xùn)課程 

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!