Java中Cookie的使用(Cookie 和Session的区别)
什么是会话?
用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据。
cookie与session区别?
cookie以文本格式存储在浏览器上,存储量有限;而会话存储在服务端,可以无限量存储多个变量并且比cookie更安全。
- cookie存储在浏览器上(客户端),session存储在服务器端。
- cookie只能存储String类型的对象;session能够存储任意类型的对象。
- cookie可以通过setMaxAge设置有效时间,即使浏览器关闭了仍然存在;但关闭网页session就结束了。
- Session过多的时候会消耗服务器资源,所以大型网站会有专门的Session服务器;而Cookie存在客户端所以没什么问题。
- cookie的存储限制了数据量,只允许4KB;而session是无限量的,它和服务器的内存大小有关。
session的生命周期?
Session存储在服务器端,一般放置在服务器的内存中(为了高速存取),Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session,可调用request.getSession(true)强制生成Session。
Session什么时候失效?
1. 服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。
2. 调用Session的invalidate方法。