美文网首页
cookie、session、token

cookie、session、token

作者: xiari1991 | 来源:发表于2020-06-06 17:25 被阅读0次

    cookie

    用在web页面,解决了状态保存的问题,最大支持4096字节数据存储
    存储在客户端

    后台获取cookie的两种方式

    方式一:

    (HttpServletRequest request){
    Cookie[] cookies =  request.getCookies();
        if(cookies != null){
            for(Cookie cookie : cookies){
            cookie.getName();
            cookie.getValue();
            }
        }
    

    方式二:

    (@CookieValue("key") String sessionId )
    
    后台修改response的cookie方法
    (HttpServletResponse response){
    
    response.addCookie(new Cookie("key", value));
    }
    

    session

    是存储在服务器端的,解决的是状态保存的问题,数据保存在服务器,较cookie更安全

    后台设置session的方式
    HttpSession session = httpRequest.getSession(true);
    session.setMaxInactiveInterval(900)//失效时间设置,单位是秒
    session.setAttribute(Constants.SESSION_KEY_USER + userToken, user);
    redisService.hmSet(Constants.SESSION_ID_KEY , userToken, session.getId());//保存到redis
    
    后台获取redis中的session,并获取存储的数据
    String sessionId = (String) redisService.hmGet(Constants.SESSION_ID_KEY, userToken);
    String key = "spring:session:sessions:" + sessionId;
    T_user user = (T_user) redisService.hmGet(key, hashKey);
    

    session一般和cookie结合使用,cookie用来存储sessionId。
    session的存储数据大小没有限制
    session可以设置

    token

    是令牌,是根据用户的信息生成的一个签名字符串,服务器可以不保存,客户端保存,服务器做校验。

    相关文章

      网友评论

          本文标题:cookie、session、token

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