cookie和session區(qū)別
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)訪問增多,會(huì)比較占用你服務(wù)器的性能考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE。
4、單個(gè)cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie。
cookie和session機(jī)制上的區(qū)別
1、存取方式的不同
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中也能夠直接保管JavaBean乃至任何Java類,對(duì)象等,運(yùn)用起來十分便當(dāng)。能夠把Session看做是一個(gè)Java容器類。
2、隱私策略的不同
Cookie存儲(chǔ)在客戶端閱讀器中,對(duì)客戶端是可見的,客戶端的一些程序可能會(huì)窺探、復(fù)制以至修正Cookie中的內(nèi)容。而Session存儲(chǔ)在服務(wù)器上,對(duì)客戶端是透明的,不存在敏感信息泄露的風(fēng)險(xiǎn)。
假如選用Cookie,比較好的方法是,敏感的信息如賬號(hào)密碼等盡量不要寫到Cookie中。最好是像Google、Baidu那樣將Cookie信息加密,提交到服務(wù)器后再進(jìn)行解密,保證Cookie中的信息只要本人能讀得懂。而假如選擇Session就省事多了,反正是放在服務(wù)器上,Session里任何隱私都能夠有效的保護(hù)。
3、有效期上的不同
使用過Google的人都曉得,假如登錄過Google,則Google的登錄信息長期有效。用戶不用每次訪問都重新登錄,Google會(huì)持久地記載該用戶的登錄信息。要到達(dá)這種效果,運(yùn)用Cookie會(huì)是比較好的選擇。只需要設(shè)置Cookie的過期時(shí)間屬性為一個(gè)很大很大的數(shù)字。
由于Session依賴于名為JSESSIONID的Cookie,而CookieJSESSIONID的過期時(shí)間默許為–1,只需關(guān)閉了閱讀器該Session就會(huì)失效,因而Session不能完成信息永世有效的效果。運(yùn)用URL地址重寫也不能完成。而且假如設(shè)置Session的超時(shí)時(shí)間過長,服務(wù)器累計(jì)的Session就會(huì)越多,越容易招致內(nèi)存溢出。
4、服務(wù)器壓力的不同
Session是保管在服務(wù)器端的,每個(gè)用戶都會(huì)產(chǎn)生一個(gè)Session。假如并發(fā)訪問的用戶十分多,會(huì)產(chǎn)生十分多的Session,耗費(fèi)大量的內(nèi)存。因而像Google、Baidu、Sina這樣并發(fā)訪問量極高的網(wǎng)站,是不太可能運(yùn)用Session來追蹤客戶會(huì)話的。
而Cookie保管在客戶端,不占用服務(wù)器資源。假如并發(fā)閱讀的用戶十分多,Cookie是很好的選擇。關(guān)于Google、Baidu、Sina來說,Cookie或許是唯一的選擇。
5、瀏覽器支持的不同
Cookie是需要客戶端瀏覽器支持的。假如客戶端禁用了Cookie,或者不支持Cookie,則會(huì)話跟蹤會(huì)失效。關(guān)于WAP上的應(yīng)用,常規(guī)的Cookie就派不上用場了。
假如客戶端瀏覽器不支持Cookie,需要運(yùn)用Session以及URL地址重寫。需要注意的是一切的用到Session程序的URL都要進(jìn)行URL地址重寫,否則Session會(huì)話跟蹤還會(huì)失效。關(guān)于WAP應(yīng)用來說,Session+URL地址重寫或許是它唯一的選擇。
假如客戶端支持Cookie,則Cookie既能夠設(shè)為本瀏覽器窗口以及子窗口內(nèi)有效(把過期時(shí)間設(shè)為–1),也能夠設(shè)為一切閱讀器窗口內(nèi)有效(把過期時(shí)間設(shè)為某個(gè)大于0的整數(shù))。但Session只能在本閱讀器窗口以及其子窗口內(nèi)有效。假如兩個(gè)瀏覽器窗口互不相干,它們將運(yùn)用兩個(gè)不同的Session。(IE8下不同窗口Session相干)
6、跨域支持上的不同
Cookie支持跨域名訪問,例如將domain屬性設(shè)置為“.biaodianfu.com”,則以“.biaodianfu.com”為后綴的一切域名均能夠訪問該Cookie??缬蛎鸆ookie如今被普遍用在網(wǎng)絡(luò)中,例如Google、Baidu、Sina等。而Session則不會(huì)支持跨域名訪問。Session僅在他所在的域名內(nèi)有效。
僅運(yùn)用Cookie或者僅運(yùn)用Session可能完成不了理想的效果。這時(shí)應(yīng)該嘗試一下同時(shí)運(yùn)用Cookie與Session。Cookie與Session的搭配運(yùn)用在實(shí)踐項(xiàng)目中會(huì)完成很多意想不到的效果。
-
Cookie
+關(guān)注
關(guān)注
0文章
30瀏覽量
10714 -
Session
+關(guān)注
關(guān)注
0文章
14瀏覽量
10241
發(fā)布評(píng)論請(qǐng)先 登錄
PCB設(shè)計(jì)中單點(diǎn)接地與多點(diǎn)接地的區(qū)別與設(shè)計(jì)要點(diǎn)
光纖跳線和網(wǎng)線有什么區(qū)別
TC377配置SMU FSP時(shí),如何配置頻率參數(shù);三種模式有何區(qū)別,配置上有何區(qū)別?
VGA和DP的具體區(qū)別
BLDC電機(jī)和DD電機(jī)區(qū)別是什么
GD32與STM32有什么區(qū)別
私有云和公有云有什么區(qū)別
ads1258 IRTCR和IRTCT的區(qū)別是什么?
關(guān)系型數(shù)據(jù)庫和非關(guān)系型區(qū)別
HTTP 和 HTTPS 的區(qū)別
FCCSP與FCBGA都是倒裝有什么區(qū)別

cookie和session區(qū)別
評(píng)論