cookie和session的区别与联系

(1)问题分析

考官主要是针对你对javaweb会话跟踪技术的考核, 比如:cookie被用户禁用怎么办?

(2) 核心答案解析

1)cookie数据存放在客户的浏览器上,session数据放在服务器上。

2)cookie并不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

4)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5)可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

6)session会在浏览器关闭或者一段时间内销毁而cookie将持久化的存放在客户端

一般情况下,session生成的sessionid都是保存在cookie中。

(3)问题扩展

cookie被用户禁用怎么办?可以使用URL地址重写是对客户端不支持Cookie的解决方案。URL地址重写的原理是将该用户Session的id信息重写到URL地址中。服务器能够解析重写后的URL获取Session的id。这样即使客户端不支持Cookie,也可以使用Session来记录用户状态。

(4)结合项目使用

1)判断用户是否登陆过网站,以便下次登录时能够直接登录。如果我们删除cookie,则每次登录必须从新填写登录的相关信息。

2)另一个重要的应用是“购物车”中类的处理和设计。用户可能在一段时间内在同一家网站的不同页面选择不同的商品,可以将这些信息都写入cookie,在最后付款时从cookie中提取这些信息,当然这里面有了安全和性能问题需要我们考虑了。

点击此处
隐藏目录