欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Cookie概述以及使用

程序员文章站 2022-06-11 22:37:25
...

一、概述

(一)会话
开始:浏览器输入网址回车,客户端和服务端握手建立连接,会话开始
结束:浏览器关闭,会话结束 (手动清除浏览器缓存) 在一次会话过程中,可以有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);