cookie和session有著千絲萬縷的聯(lián)系,本文將詳細介紹2者的區(qū)別。
1、存儲位置不同
cookie的數(shù)據(jù)信息存放在客戶端瀏覽器上结闸。
session的數(shù)據(jù)信息存放在服務器上。
2酒朵、存儲容量不同
單個cookie保存的數(shù)據(jù)<=4KB桦锄,一個站點最多保存20個Cookie。
對于session來說并沒有上限蔫耽,但出于對服務器端的性能考慮结耀,session內(nèi)不要存放過多的東西留夜,并且設置session刪除機制。
3图甜、存儲方式不同
cookie中只能保管ASCII字符串碍粥,并需要通過編碼方式存儲為Unicode字符或者二進制數(shù)據(jù)。
session中能夠存儲任何類型的數(shù)據(jù)黑毅,包括且不限于string嚼摩,integer,list矿瘦,map等枕面。
4、隱私策略不同
cookie對客戶端是可見的缚去,別有用心的人可以分析存放在本地的cookie并進行cookie欺騙潮秘,所以它是不安全的。
session存儲在服務器上易结,對客戶端是透明對枕荞,不存在敏感信息泄漏的風險。
5衬衬、有效期上不同
開發(fā)可以通過設置cookie的屬性买猖,達到使cookie長期有效的效果。
session依賴于名為JSESSIONID的cookie滋尉,而cookie JSESSIONID的過期時間默認為-1,只需關閉窗口該session就會失效飞主,因而session不能達到長期有效的效果狮惜。
6、服務器壓力不同
cookie保管在客戶端碌识,不占用服務器資源碾篡。對于并發(fā)用戶十分多的網(wǎng)站,cookie是很好的選擇筏餐。
session是保管在服務器端的开泽,每個用戶都會產(chǎn)生一個session。假如并發(fā)訪問的用戶十分多魁瞪,會產(chǎn)生十分多的session穆律,耗費大量的內(nèi)存吵瞻。
7丈氓、瀏覽器支持不同
假如客戶端瀏覽器不支持cookie:
cookie是需要客戶端瀏覽器支持的市怎,假如客戶端禁用了cookie官扣,或者不支持cookie齐邦,則會話跟蹤會失效募强。關于WAP上的應用浪感,常規(guī)的cookie就派不上用場了更卒。
運用session需要使用URL地址重寫的方式。一切用到session程序的URL都要進行URL地址重寫洛口,否則session會話跟蹤還會失效矫付。
假如客戶端支持cookie:
cookie既能夠設為本瀏覽器窗口以及子窗口內(nèi)有效,也能夠設為一切窗口內(nèi)有效第焰。
session只能在本窗口以及子窗口內(nèi)有效技即。
8、跨域支持上不同
cookie支持跨域名訪問樟遣。
session不支持跨域名訪問而叼。