美文网首页
分析cookie session token区别

分析cookie session token区别

作者: eblly | 来源:发表于2017-11-01 11:31 被阅读0次

    github找个springMVC的例子,运行起来以供测试。
    https://github.com/Cenyol/SpringMVC

    修改部分代码

     // 首页
        @RequestMapping(value = "/", method = RequestMethod.GET)
        public String index() {
               ServletRequestAttributes attr = (ServletRequestAttributes)RequestContextHolder.currentRequestAttributes();
    
                HttpServletRequest req = attr.getRequest();
                HttpServletResponse response = attr.getResponse();
    
                HttpSession session = req.getSession();
                Enumeration enumerations = session.getAttributeNames();
                String sessionId = session.getId();
                String sessValue = (String)session.getAttribute("sess");
    
                session.setAttribute("sess","session123456");
    
                ServletContext servletContext = session.getServletContext();
    
                Cookie[] cookies = req.getCookies();
                Cookie cookie = new Cookie("aaaa", "bbb");
                response.addCookie(cookie);
    }
    

    客户端(浏览器)和服务端如何识别同一个session

    猜测 通过sessionID

    验证:

    image.png image.png image.png

    同样的,如果不重启服务器。清空浏览器的cookie使得发送的请求头不包含cookie,服务端会视该请求为首次请求,并返回set-cookie。

    session

    java代码中的session是服务器用于存储keysessionID,value为Map的容器.
    如下图:

    屏幕快照 2017-11-01 10.42.13.png

    JSESSIONID是java容器默认生成名为JSESSIONID的session id。

    Examples of the names that some programming languages use when naming their cookie include JSESSIONID (Java EE), PHPSESSID (PHP), and ASPSESSIONID (Microsoft ASP).

    cookie

    cookie是客户端存储数据的空间。
    但为什么服务端可以操作cookie,客户端也可以操作cookie,这两者之间有什么关联和区别?

    服务端操作cookie的方式是set-cookie,而客户端是取cookie。
    在客户端首次访问服务时,请求头中没有包含cookie,这时服务端会判断用户为首次登录,记录标识并在返回的头部包含set-cookie键值。
    随后客户端拿到这set-cookie并存放在cookie中,再次访问服务时,request的头部中会包cookie字段。

    session ID 与token

    session IDtoken是一码事,都是用于标识会话,只不过它们的生成规则不一样。
    它们通常会存储于cookie中,并会随着http请求发送至服务端。

    参考

    相关文章

      网友评论

          本文标题:分析cookie session token区别

          本文链接:https://www.haomeiwen.com/subject/xaxwpxtx.html