cookie、session、token

2020-06-06  本文已影响0人  xiari1991

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

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

上一篇下一篇

猜你喜欢

热点阅读