cookie 和session 的區(qū)別

之前沒有用過session,只用過HTML5中l(wèi)ocalStorage(以前總結(jié)過sessionStorage 、localStorage和cookies的區(qū)別);剛開始我以為session和sessionStorage是同一個(gè)東西。。。
它們的區(qū)別:

1、存儲(chǔ)位置:

cookie數(shù)據(jù)存放在瀏覽器上,session數(shù)據(jù)存放在服務(wù)器上;

2、安全性

cookie相對(duì)來說沒有session安全,因?yàn)閯e人可以通過分析cookie來進(jìn)行cookie欺騙;(當(dāng)然我們可以加密解密cookie)因此一般情況下登錄等重要信息應(yīng)采用session;

3、性能

session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上,因此當(dāng)訪問增大時(shí),會(huì)影響服務(wù)器的性能,而cookie則不存在該情況;

4、大小限制

cookie有大小限制(不能超過4k),很多瀏覽器會(huì)限制一個(gè)站點(diǎn)最多保存20個(gè)cookie,而session的大小則只以硬件為限制;

5、存取方式

Cookie中只能保管ASCII字符串,假如需求存取Unicode字符或者二進(jìn)制數(shù)據(jù),需求先進(jìn)行編碼。Cookie中也不能直接存取Java對(duì)象。若要存儲(chǔ)略微復(fù)雜的信息,運(yùn)用Cookie是比擬艱難的。
而Session中能夠存取任何類型的數(shù)據(jù),包括而不限于String、Integer、List、Map等。Session中也能夠直接保管Java Bean乃至任何Java類,對(duì)象等,運(yùn)用起來十分便當(dāng)。能夠把Session看做是一個(gè)Java容器類。

6、跨域支持

Cookie支持部分跨域名訪問,例如將domain屬性設(shè)置為“.biaodianfu.com”,則以“.biaodianfu.com”為后綴的一切域名均能夠訪問該Cookie??缬蛎鸆ookie如今被普遍用在網(wǎng)絡(luò)中,例如Google、Baidu、Sina等。而Session則不會(huì)支持跨域名訪問。Session僅在他所在的域名內(nèi)有效。

7、生命周期

(以20分鐘為例)
(1)cookie的生命周期是累計(jì)的,從創(chuàng)建時(shí),就開始計(jì)時(shí),20分鐘后,cookie生命周期結(jié)束,
(2)session的生命周期是間隔的,從創(chuàng)建時(shí),開始計(jì)時(shí)如在20分鐘,沒有訪問session,那么session生命周期被銷毀
但是,如果在20分鐘內(nèi)(如在第19分鐘時(shí))訪問過session,那么,將重新計(jì)算session的生命周期
(3)關(guān)機(jī)會(huì)造成session生命周期的結(jié)束,但是對(duì)cookie沒有影響

參考資料:
1、 cookie 和session 的區(qū)別詳解
2、Cookie與Session的區(qū)別與聯(lián)系及生命周期
3、Cookie與Session的區(qū)別

最后編輯于
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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