Session与Cookie

深入理解Session与Cookie

Session与Cookie的作用都是为了保持访问用户与后端服务器的交互状态。它们有各自的有点,也有各自的缺陷。Cookie会随着个数的增多和访问量的增加,它占用的网络带宽也很大,Session致命缺点在于多台服务器之间的共享。

Cookie

属性项 属性项介绍
NAME-VALUE 注意这里的NAME不能和其他属性项的名字一样
Expires 过期时间,在设置的某个时间点后该Cookie就会失效
Domain 生成该Cookie的域名
Path 该Cookie是在当前哪个路劲下生成的
Secure 如果设置了这个属性,那只会在SSH连接时才会回传该Cookie

当前Cookie有两个版本:Version 0 和Version 1,它们有两种设置响应头的标识,分别是“Set-Cookie”和“Set-Cookie2”。这两个版本的属性项有些不同。
Version 0 属性项介绍

属性项 属性项介绍
NAME-VALUE 注意这里的NAME不能和其他属性项的名字一样
Expires 过期时间,在设置的某个时间点后该Cookie就会失效
Domain 生成该Cookie的域名
Path 该Cookie是在当前哪个路劲下生成的
Secure 如果设置了这个属性,那只会在SSH连接时才会回传该Cookie

Version 1 与Version 0 中设置的Header头的标识符是不同的,我们常用的是Set-Cookie:userName="";Domain="",这是Version0的形式。针对Set-Cookie2是这样设置的:Set-Cookie2:userName="";Domain="";Max-Age=1000。但是在Java Web的Servlet规范中并不支持Set-Cookie2响应头。

String getCookie(Cookie[] cookies, String key) {
    if (cookies != null) {
        for (Cookie cookie : cookies) {
            if (cookie.getName().equals(key)) {
                return cookie.getValue();
            }
        }
    }
    return null;
}

    public void doGet(HttpServletRequest request, HttpServletResponse response) {
    Cookie[] cookies = request.getCookies();
    String userName = getCookie(cookies, "userName");
    String userAge = getCookie(cookies, "userAge");
    if (userName == null) {
        response.addCookie(new Cookie("userName", "zft"));
    }
    if (userAge == null) {
        response.addCookie(new Cookie("userAge", "26"));
    }
    response.getHeader("Set-Cookie");
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 此文知识来自于:《深入分析Java_Web技术》第十章现代session与cookie的应用 本章概要:当我们的一...
    李文文丶阅读 1,370评论 0 4
  • 目录Cookie机制什么是CookieCookie的不可跨域名性Unicode编码:保存中文BASE64编码:保存...
    Tomatoro阅读 16,983评论 7 186
  • 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Se...
    chinariver阅读 5,677评论 1 49
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,997评论 19 139
  • 想来是最近烦忧过甚,致使今日写下,望,忘。让我想想,是什么时候我们做起朋友了呢?我思来想去,约计是开学几日后,一起...
    似思斯阅读 239评论 0 0