cookie可以保存用户信息,通过浏览器发送请求到服务器,访问servlet1,Cookie保存servlet1返回的数据作为请求头,发送请求到servlet2
Session在服务器保存数据,浏览器发送请求到servet1,服务器会为这个请求创建一个session,保存用户数据。然后浏览器向servler2发送请求的时候,servlet2会去拿session中的用户信息,用户信息不回保存在浏览器中
区别:
1)cookie数据存放在浏览器上,session数据存放在服务器上
2)很多浏览器一个站点最多保存20个cookie,单个cookie保存的数据不超过4k
3)Cookie不是很安全,别人可以分析放在本地的cookie进行cookie欺骗考虑到安全性,应该使用session
4)可以将重要信息放在session中,不重要的信息放在cookie中
5)Session在浏览器关闭或者一段时间内销毁,也可以通过setMaxInactiveInterval(int)方法进行设置,或是通过invalidate()方法强制结束当前会话。Cookie可以通过setMaxAge(int)方法设置cookie在客户端的时间
6)一般情况下,session生成的sessionid都保存在cookie中。
总结:
1)cookie:在客户端保存数据,不安全,只能保存字符串,并且少量,4K
2)Session:在服务端保存数据,安全,可以保存对象,数据无显示
(1)Cookie被用户禁用了怎么办?
可以使用URL地址重写是对客户端不支持Cookie的解决方案。URL地址重写的原理是将该用户Session的id信息重写到URL地址中。服务器能够解析重写后的URL获取Session的id.这样即使客户端不支持Cookie,也可以使用Session来记录用户状态。
*
(2)使用场景
自动登录