Cookie概述以及使用
一、概述
(一)会话
开始:浏览器输入网址回车,客户端和服务端握手建立连接,会话开始
结束:浏览器关闭,会话结束 (手动清除浏览器缓存) 在一次会话过程中,可以有n多次请求和响应。
(二)会话技术 Cookie技术:把会话数据保存在客户端的技术 session技术:把会话数据保存在服务端的技术,session技术依赖于Cookie技术
Cookie和session统称为会话技术,这两门技术都可以用来保存会话数据,但是它们也有区别:
1. 存储的位置不同。Cookie保存在客户端,session保存在服务器
2. 安全性区别。Cookie不安全,数据可能会丢失或者被篡改,session相对安全
3. Cookie不方便存储大的复杂的数据,会对网络带宽造成压力,session可以存储大的复杂的数据,但是服务器压力大
4. session依赖于Cookie
二、Cookie技术
把会话数据保存在客户端的技术。
(一)创建Cookie
Cookie cookie = new Cookie(String name, String value);
1.Cookie的有效期
Cookie的默认有效期是:一次会话期间
//手动设置Cookie的有效期:
cookie.setMaxAge(int seconds);
Cookie默认是被保存在浏览器内存当中的,所以浏览器关闭,内存清空,Cookie也消失了;设置了有效期以后,Cookie被保存到了磁盘文件上,所以只要Cookie没有超过有效期,并且没有被清除掉,就是有效的,无论浏览器是否关闭。
2.Cookie的有效路径
Cookie的默认有效路径:生成Cookie的资源所在的路径。只有在访问有效路径时,才会携带Cookie到服务端。 比如:
/day37_cookie_session/aa/create生成的Cookie,那么这个Cookie的有效路径是/day37_cookie_session/aa
//手动设置Cookie的有效路径:
cookie.setPath(String path);
//比如:
cookie.setPath(request.getContextPath());
(二)发送Cookie
response.addCookie(cookie);
(三)接收Cokie
Cookie[] cookies = request.getCookies();
(四)删除Cookie
通过创建同name,同path,同domain的cookie,设置有效期设置为0,然后发送到客户端覆盖原有的Cookie。
Cookie cookie = new Cookie("username","");
cookie.setPath(request.getContextPath());
//设置有效期为0
cookie.setMaxAge(0);
//发送到客户端,覆盖已有的Cookie
response.addCookie(cookie);
上一篇: cookie和session的使用