HTTP协议无状态
HTTP是无状态的协议,客户每次读取web页面时,服务器都打开新的连接,而且服务器也不会自动维护客户的上下文信息。
session和cookie就是为解决HTTP协议的无状态采用的两种解决方案。
可以采用session将信息保存在服务器端解决,可以采用cookie将信息保存在客户端解决。
session的失效时机
【1】手动注销
session.invalidate()
【2】超过session活动的有效时间
【3】关闭浏览器(该方式没有立刻结束session)
Session和Cookie的区别
1、cookie数据存放在客户端,session数据放在服务器上;
2、cookie不是很安全(可以加密),别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session;
3、session会在一定时间内保存在服务器上,当访问增多,会比较占用服务器的性能,考虑到减轻服务器性能方面,应当使用cookie;单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的cookie不能超过3K。
4、cookie的数据都以字符串的形式保存,session中可以保存对象信息。
典型使用
cookie:记住我,最近浏览商品……
session:登录信息,购物车(也可以使用cookie)