session、cookie、token的区别
转载:面试必问:session,cookie和token的区别
详情自行看转载的链接,以下是自己的笔记总结
- http是无状态协议,若想实现客户端与服务器的交互,需要使用cookie+session技术或者token技术
cookie+session的实现流程
- 客户端发送请求到服务器
- 服务器收到请求后,在本地创建一个session,并传一个cookie回给客户端(cookie包含在响应头中)
- 客户端在后续所发出请求中,会包含cookie
- 服务器根据收到的cookie找对应的session,从而确定发送者的身份,完成后续的数据交互
token的实现流程
- 客户端提交账号和密码到服务端(登录操作)
- 通过登录验证后,服务端响应由 JWT(算法) 生成的 Token 令牌。
- 后续客户端若要访问服务器中其他资源,会在请求中带着 Token 到服务端。
- 服务端接收到请求之后,从 Token 中拿出 header 和 payload(图中Claims) ,然后通过HS256算法将 header 和 payload 和 “盐” 值 进行计算得出内容,让计算出的内容与Token中的第三部分,也就是Signature去比较,如果一致则验证通过,反之则失败。
注:token结构