前端面試題必問:cookie和session的區(qū)別

cookie和session有著千絲萬縷的聯(lián)系,本文將詳細(xì)介紹2者的區(qū)別。

1、存儲(chǔ)位置不同

cookie的數(shù)據(jù)信息存放在客戶端瀏覽器上。

session的數(shù)據(jù)信息存放在服務(wù)器上。

2、存儲(chǔ)容量不同

單個(gè)cookie保存的數(shù)據(jù)<=4KB,一個(gè)站點(diǎn)最多保存20個(gè)Cookie。

對(duì)于session來說并沒有上限,但出于對(duì)服務(wù)器端的性能考慮,session內(nèi)不要存放過多的東西,并且設(shè)置session刪除機(jī)制。

3、存儲(chǔ)方式不同

cookie中只能保管ASCII字符串,并需要通過編碼方式存儲(chǔ)為Unicode字符或者二進(jìn)制數(shù)據(jù)。

session中能夠存儲(chǔ)任何類型的數(shù)據(jù),包括且不限于string,integer,list,map等。

4、隱私策略不同

cookie對(duì)客戶端是可見的,別有用心的人可以分析存放在本地的cookie并進(jìn)行cookie欺騙,所以它是不安全的。

session存儲(chǔ)在服務(wù)器上,對(duì)客戶端是透明對(duì),不存在敏感信息泄漏的風(fēng)險(xiǎn)。

5、有效期上不同

開發(fā)可以通過設(shè)置cookie的屬性,達(dá)到使cookie長期有效的效果。

session依賴于名為JSESSIONID的cookie,而cookie JSESSIONID的過期時(shí)間默認(rèn)為-1,只需關(guān)閉窗口該session就會(huì)失效,因而session不能達(dá)到長期有效的效果。

6、服務(wù)器壓力不同

cookie保管在客戶端,不占用服務(wù)器資源。對(duì)于并發(fā)用戶十分多的網(wǎng)站,cookie是很好的選擇。

session是保管在服務(wù)器端的,每個(gè)用戶都會(huì)產(chǎn)生一個(gè)session。假如并發(fā)訪問的用戶十分多,會(huì)產(chǎn)生十分多的session,耗費(fèi)大量的內(nèi)存。

7、瀏覽器支持不同

假如客戶端瀏覽器不支持cookie:

cookie是需要客戶端瀏覽器支持的,假如客戶端禁用了cookie,或者不支持cookie,則會(huì)話跟蹤會(huì)失效。關(guān)于WAP上的應(yīng)用,常規(guī)的cookie就派不上用場了。

運(yùn)用session需要使用URL地址重寫的方式。一切用到session程序的URL都要進(jìn)行URL地址重寫,否則session會(huì)話跟蹤還會(huì)失效。

假如客戶端支持cookie:

cookie既能夠設(shè)為本瀏覽器窗口以及子窗口內(nèi)有效,也能夠設(shè)為一切窗口內(nèi)有效。

session只能在本窗口以及子窗口內(nèi)有效。

8、跨域支持上不同

cookie支持跨域名訪問。

session不支持跨域名訪問。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容