session可以存集合嘛_面试 cookie和session的区别

1、存储位置不同

  • cookie的数据信息存放在客户端浏览器上
  • session的数据信息存放在服务器上

(PS:因为存储位置的不同,当用户禁用了客户端浏览器cookie时,将无法正常生成cookie但是session依旧可以正常生成,但是不能正常使用。)

2、存储容量不同

  • 单个cookie保存的数据<=4KB,一个站点最多保存20个cookie
  • 单个session保存的数据理论上来说没有上限

(PS:从性能考虑,session不要存过多的东西并设置删除机制)

3、存储内容不同

  • cookie中只能保存ASCII字符串
  • session中能够存储任何类型的数据,例如 string,list,map等等

(PS: 在cookie里面直接存中文会乱码

@Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        String s="这是一段中文";        Cookie cookie=new Cookie("key",s);        resp.addCookie(cookie);    }
ab4941c27fde4375e6d0b13acc6f51b2.png

cookie直接存储中文,乱码了

)

4、隐私策略不同

  • cookie对客户端是可见的,可以通过分析存放在本地的cookie然后进行cookie欺诈,所以安全性比session弱
  • session存在服务器上,在客户端存的是一个id,风险小

5、有效期不同

  • cookie可以通过设置属性达到长期有效得效果
  • session依赖于JSESSIONID这个cookie,但是这个cookie的过期时间默认为-1,所以关闭窗口session会失效,因而session不能达到长期有效。

6、跨域支持不同

  • cookie支持跨域名访问
  • session不支持跨域名访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值