一,数据存放位置方面的区别。
Cookie数据存放在客户的浏览器上。
Session数据存放在服务器上。
二,数据存储大小方面的区别
单个Cookie保存的数据不能超过4KB的容量,而且很多浏览器都限制一个站点最多保存20个cookie。
Session理论上是没有存储限制的,但是出于对服务器性能的考虑,不要在Session中存放太多的数据。
三,数据存储有效期方面的区别。
Cookie可以通过设置有效期,达到长期有效的效果。
Session在用户关闭浏览器时就会失效。
四,数据存储方式方面的区别。
Cookie中只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。
Session中能够存储任何类型的数据,包括且不限于string,integer,list,map等。
五,安全方面的区别。
Cookie对客户端是可见的,别人可以分析存放在本地的cookie并进行cookie欺骗。
Session是存储在服务器上,对客户端是透明对,不存在敏感信息泄漏的风险。
六,对服务器性能影响方面的区别。
Cookie因为存储在客户端,不占用服务器资源,所以对服务器性能影响上比较小。
Session因为是存储在服务器端的,每个用户都会产生至少一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。
七,会话机制的区别。
Session会话机制:session会话机制是一种服务器端机制,它使用类似于哈希表(可能还有哈希表)的结构来保存信息。
Cookies会话机制:cookie是服务器存储在本地计算机上的小块文本,并随每个请求发送到同一服务器。 Web服务器使用HTTP标头将cookie发送到客户端。在客户端终端,浏览器解析cookie并将其保存为本地文件,该文件自动将来自同一服务器的任何请求绑定到这些cookie。
八,跨域访问上的区别。
cookie支持跨域名访问。
session不支持跨域名访问。
总而言之,Cookie就是cookie,Session就是session,他们本来就是两个不同的对象,放在一起对比一下各方面的不同,目的是为了加深我们对Cookie和Session的认识。