cookie和session的区别

1.存储位置不同

cookie的数据信息存储在客户端上;
session的数据信息存储在服务器上。

2.存储容量不同

单个cookie保存的数据 <= 4kb,一个站点最多保存20个cookie;可以设置cookie时间使cookie过期;
session没有上限,但设置了session销毁机制(session-destory())

3.存储方式不同

cookie只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或二进制数据;
session可以存储任何类型的数据,包括String,Integer,list等

4.隐私策略不同

cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以是不安全的;
session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。

5.有效期不同

可以通过设置cookie属性,达到使cookie长期有效的效果;
session依赖于名为JSESSIONID的cookie,而JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。

6.服务器压力不同

cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择;
session是保管在服务器的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存

7.跨域支持不同

cookie支持跨域访问
session不支持跨域访问

8.浏览器支持不同

假如客户端不支持cookie:

cookie是需要客户端支持的,假如客户端禁用了cookie(或者不支持cookie),则会话跟踪会失效。
运用session需要使用URL地址重写的方式。一切用到session程序的URL都要进行URL地址重写,否则session会话跟踪也会失效。

假如客户端支持cookie:

cookiej既能够设为本浏览器窗口及其子窗口内有效,也能够设为一切窗口内有效;
session只能够在本窗口及其子窗口内有效。

你可能感兴趣的:(cookie和session的区别)