前言
由于Http协议是无状态的协议, 所以为了记住请求的状态,所以引入了session 和 cookie
1. session
服务器对于用户浏览器的请求,产生一个session,保留在服务器端, 然后将sessionId返回到前台,存放于cookie中的JSESSIONID中
2. cookie
存放在客户端(浏览器) 用于记录会话信息,比如登录信息,偏好设定等
过期时间
默认关闭浏览器后,cookie清空
3.demo
- 首次发送http请求
- 后台打印
@GetMapping("/sessionScope")
@ApiOperation(value = "直接调用controller",notes = "controller设置成session")
public JsonResult getIntegerInController(HttpServletRequest request){
String sessionId = request.getSession().getId();
log.info("sessionId 是 {}",sessionId);
return JsonResult.ok().add("threadName", Thread.currentThread().getName())
.add("session", sessionId);
}
2020-08-06 15:06:01.923 INFO 20556 --- [nio-8192-exec-6] c.y.spring.controller.SessionController : sessionId 是 CD748989F753BEF5C7AC5AD38CCD323D
- 第二次发送请求 cookie中携带了sessionId