Cookie,Session,Token详解

本文详细介绍了Cookie、Session和Token三种常见的身份验证和状态管理机制。Cookie存储在客户端,分为内存和硬盘类型,常用于状态管理和个性化设置。Session将用户信息存储在服务器端,通过sessionID进行身份识别。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获取对应的用户信息,进行请求业务的响应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值