Cookie,Session,Token详解

1.Cookie方案

Cookie保存在客户端中,分为内存Cookie和硬盘Cookie,内存Cookie由浏览器维护,保存在内存中,浏览器关闭后消失,硬盘Cookie保存在硬盘中,有一个过期时间,存在时间是长期的。

同时HTTP Cookie是服务器发送到用户浏览器并保存在本地的一小块数据,会在浏览器在下一次请求被携带并发送到服务器上。
Cookie用于这三个方面上:

  1. 绘画状态管理
  2. 个性化设置
  3. 浏览器行为跟踪

服务器创建Cookie

服务器收到HTTP请求,会在响应头添加一个set-Cookie选项,浏览器收到响应后会保存下Cookie,之后对服务器每一次请求会通过Cookie请求头部将Cookie信息发送给服务器,Cookie的过期时间,域,路径,有效期,过期站点。

2. Session方案

session机制将用户所有的活动信息,上下文信息,登录信息等存储在服务端,生成一个唯一标识ID发送给客户端,后续交互没有重复的交互信息,取而代之的是唯一标识ID.

简单的交互流程

客户端第一次请求session对象,服务器会为客户端创建一个session,算出一个id标识session对象

浏览器下次请求别的资源,浏览器会将sessionID放置请求头,服务器接受请求会解析sessionID,服务器接收sessionID确定请求方的身份信息和上下文信息。

session的实现方式

  1. Cookie载体
  2. url重写(将会话标识号以参数形式附加在超链接URL地址后面的技术称为URL重写)

3.Token方案

由服务端生成并发送给客户端,是一种具有时效性的验证身份和手段

Token避免了session机制带来的海量信息存储问题,也避免了cookie机制的安全问题

简单的交互流程

  1. 客户端将账号和密码发送给服务端。
  2. 服务器对其校验,生成一个token值发给客户端,作为后续的请求交互身份令牌。
  3. 客户端拿到服务端返回的token的值后,将其保存在本地,每次请求服务端携带该token值,提交给服务端进行验证。
  4. 服务端收到请求,解析相关信息,根据加密算法,密钥,用户生成的参数sign与客户端的sign进行对比,一致则通过,否则拒绝。
  5. 验证通过后,服务端可以根据token中的uid获取对应的用户信息,进行请求业务的响应。

你可能感兴趣的:(网络,前端,后端)