快速入门springboot 网页开发(四) session 和 token 机制
- session 机制
- session 机制
- session 工作流程
session 机制
HTTP 协议是无状态的。
◼ 即服务器对于客户端每次发送的请求都认为它是一个新的请求。
◼ 本次请求和上次请求无法判断是不是同一个客户端操作的。
随着 Web 应用的发展,如在线购物网站,需要登录的网站等,马上就面临一个问题,
那就是要管理会话,必须记住哪些用户登录了系统,哪些用户往自己的购物车中放了商
品, 也就是说必须把每个用户区分开
session 机制
◼ session 是一种记录服务器和客户端会话状态的机制。
◼ session 主要用来存储所有访问过该服务端的客户端的用户信息(也可以存
储其他信息),从而实现保持用户会话状态。
◼ session 是基于 cookie 实现的,session存储在服务器端, sessionid 会被
存储到客户端的 cookie 中
注: cookie 是浏览器访问服务器后,服务器传给浏览器的一段数据(key-value)
cookie 特点:
⚫ cookie 存放在客户端
⚫ cookie 有个数限制(不同浏览器的cookie个数不等) ,
⚫ cookie 大小一般是4K,
⚫ cookie 可设置失效时间(如果没设置,默认是关闭浏览器时失效),
⚫ cookie 是不可跨域的(当前域名下有效)。
session 工作流程
◼ 浏览器在第一次访问服务器时,服务器会创建一个 session,代表用户的一次会话过程,服务器会为每一个 session 都分配一个唯一的 sessionid,以保证每个用户都有一个不同的session 对象。
◼ 服务器在创建完 session 后,同时会创建一个特殊的 cookie(name为JSESSIONID,
value为sessionid),并将该 cookie 发送至浏览器端。
◼ 当用户向服务器发送新的请求时,浏览器会携带这个 cookie 对象,把 sessionid 传回给服务器,服务器根据 sessionid 找到与该用户对应的 session 对象,从而区分不同用户。
session 登录验证机制
◼ 用户在登录认证成功之后,并且往 session 对象里面放入了用户登录成
功的凭证,才能用来进行真正意义上的管理会话