http是无状态的,可以使用session或者cookie来保存用户会话状态。cookie和session的区别如下:
1、存储位置不同
cookie存放在客户端,session存放在服务器端。
2、安全性不同
cookie存放在客户端,可通过xss漏洞进行攻击,获取用户敏感信息,session只有在登录时进行xss攻击才能获取信息,在一次会话结束后,session就销毁了。
3、跨域支持不同
cookie支持跨域使用,只有处在一个域名就可进行访问,session只有在同一个站点才能使用。
4、服务器压力不同
对于访问人数较多的网站,如果使用session方式,需要存放每个用户的session信息,对服务器压力较大。
5、存取方式不同
cookie只能存放ASCII字符串,对于Unicode或者二进制,需要先进行编码;session可以存放任何类型的吗,包括Java对象、list、map等,可以看成一个Java容器。
6、cookie大小有限
cookie的大小限制为4kB,且一般一个站点只能用20个cookie。