0%

Cookie

Cookie基本使用

  • Cookie:客户会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问

  • 发送Cookie

    • 创建Cookie对象,设置数据

      1
      Cookie cookie = new Cookie("key", "value");
    • 设置Cookie生效范围

      1
      cookie.setPath("路径");
    • 发送Cookie到客户端:使用response对象

      1
      response.addCookie(cookie);
  • 获取Cookie

    • 获取客户端携带的所有Cookie,使用request对象

      1
      Cookiep[] cookies = request.getCookies();
    • 使用Cookie对象方法获取数据

      1
      2
      cookie.getName();
      cookie.getValue();
    • 使用@CookieValue注解获取指定Cookie

      1
      2
      3
      public void getCookie(@CookieValue("code") String code) {
      System.out.println(code);
      }

Cookie原理

  • Cookie的实现基于HTTP协议
    • 响应头:set-cookie
    • 请求头:cookie

Cookie使用细节

  • Cookie存活时间
    • 存储在浏览器内存中默认当浏览器关闭,内存释放,Cookie被销毁
    • setMaxAge(int seconds):设置Cookie存活时间
      • 正数:将Cookie写入浏览器所在电脑硬盘,持久化存储,到时间自动删除
      • 负数:默认值
      • 零:删除对应Cookie
  • Cookie不能直接存储中文,需要转码:URL编码(String URLEncoder.encode(String, “utf-8”))

Cookie与Session的区别

  • 存储位置:Cookie是将数据存储在客户端,Session存储在服务器端
  • 安全性:Cookie不安全,Session安全
  • 数据大小:Cookie 3kb,Session无限制
  • 存储时间:Cookie可长期存储,Session默认30分钟
  • 服务器性能:Cookie不占用服务器资源,Session占用
------ THEEND ------

欢迎关注我的其它发布渠道