cookie和session的區別有哪些


 

前言:

cookie和session有着千絲萬縷的聯系,本文將詳細介紹2者的區別。


1、存儲位置不同

cookie的數據信息存放在客戶端瀏覽器上。

session的數據信息存放在服務器上。

2、存儲容量不同

單個cookie保存的數據<=4KB,一個站點最多保存20個Cookie。

對於session來說並沒有上限,但出於對服務器端的性能考慮,session內不要存放過多的東西,並且設置session刪除機制。

3、存儲方式不同

cookie中只能保管ASCII字符串,並需要通過編碼方式存儲為Unicode字符或者二進制數據。

session中能夠存儲任何類型的數據,包括且不限於string,integer,list,map等。

4、隱私策略不同

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

session存儲在服務器上,對客戶端是透明對,不存在敏感信息泄漏的風險。

5、有效期上不同

開發可以通過設置cookie的屬性,達到使cookie長期有效的效果。

session依賴於名為JSESSIONID的cookie,而cookie JSESSIONID的過期時間默認為-1,只需關閉窗口該session就會失效,因而session不能達到長期有效的效果。

6、服務器壓力不同

cookie保管在客戶端,不占用服務器資源。對於並發用戶十分多的網站,cookie是很好的選擇。

session是保管在服務器端的,每個用戶都會產生一個session。假如並發訪問的用戶十分多,會產生十分多的session,耗費大量的內存。

7、瀏覽器支持不同

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

cookie是需要客戶端瀏覽器支持的,假如客戶端禁用了cookie,或者不支持cookie,則會話跟蹤會失效。關於WAP上的應用,常規的cookie就派不上用場了。

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

假如客戶端支持cookie:

cookie既能夠設為本瀏覽器窗口以及子窗口內有效,也能夠設為一切窗口內有效。

session只能在本窗口以及子窗口內有效。

8、跨域支持上不同

cookie支持跨域名訪問。

session不支持跨域名訪問。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM