一、Cookie与Session的区别
1、存储位置不同
Cookie数据信息存放在客户端的浏览器上。
Session数据信息存放在服务器上。
2、存储容量不同
单个Cookie保存的数据<= 4KB,一个站点最多保存20个Cookie
对于Session来说并没存储上限(出于对服务器性能考虑,Session内不要存太多东西,并建立Session删除机制)
3、存储方式不同
Cookie中只能保管ASSII字符串,并需要通过编码方式存储Unicode字符或者二进制数据。
Session中能够存储任何类型的数据,包括且不限于string、integer、list、map等。
4、安全性不同
Cookie对于客户端是可见的,可以分析存放在本地的Cookie并进行Cookie欺骗,所有不安全。
Session存储在服务器,对服务端透明,不存在敏感信息泄露的风险。
5、有效期不同
开发可以通过设置Cookie的属性,控制Cookie的有效期。
只要关闭窗口Session就会消失,因而Session不能达到长期有效的效果。
6、适用场景不同
Cookie保存在客户端,不占用服务器资源。对高并发量的网站,Cookie是很好的选择。
Session保存在服务端,每个用户都会产生一个Session,对于并发不高的网站,Session是很好的选择。(如果并发量高,会耗费服务器大量的内存)
7、浏览器支持不同
例如客户端浏览器不支持Cookie:
Cookie是需要浏览器支持的,假如客户禁用了Cookie或不支持等,常规的Cookie就派不上用场。
运用session需要使用URL地址重写的方式。一切用到session程序的URL都要进行URL地址重写,否则session会话跟踪还会失效。
注:URL地址重写介绍,https://www.jianshu.com/p/8e3a1bfe0533
假如客户端支持cookie:
cookie既能够设为本浏览器窗口以及子窗口内有效,也能够设为一切窗口内有效。
session只能在本窗口以及子窗口内有效。
8、跨域支持不同
Cookie支持跨域名访问。
Session不支持跨域名访问。
网友评论