7.12理解Cookie与token
作者:互联网
7.12理解Cookie与token
Cookie与token机制测试
http协议的特点:
Http协议是无状态的协议,Cookie与Session机制用于补充跟踪会话状态
Web Client与Web Server通讯过程简述--->Cookie与Session
-
由Client发起--->Http Request--->Web Server
-
Web Server--->Http Response+Set-Cookie--->Web Client
-
Web Client--->Http Request+Cookie--->Web Client
-
Web Server--->Http Response--->Web Client
token机制
cookie/seesion机制需要在服务端保存大量的seesion信息,造成严重负担,而token机制则避免记录大量信息,采用服务器签发的token完成验证。 1、客户端使用用户名跟密码请求登录 2、服务端收到请求,去验证用户名与密码 3、验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端 4、客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里 5、客户端每次向服务端请求资源的时候需要带着服务端签发的 Token 6、服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据
发展史
-
交互式web应用诞生,需要进行会话管理--->由于http请求是无状态的,所以通过服务端给每一个客户端发送一个seesion id用于标识用户身份
-
由于服务端会做负载均衡,对用户的登录请求进行分发处理。所以如果一开始用户登录的是服务器A那么他的seesion值只会在服务器A保存,当下一次登录的时候被分发到服务器B的时候seesion值是不会带过去的。所以需要进行seesion复制
-
-
后来为了统一管理seesion就单独把seesion集中存储到一个地方,让所有的服务器都来访问这个地方的数据。
-
如果这个地方崩了那么所有系统的用户都需要重新登录一次
-
-
由于这个过程的关键在于验证,所以当用户登录了系统便发送一个token令牌,里面包含了user id,用户通过http api访问资源的时候把token通过http header带过来即可
-
为了防止伪造token,设计了算法进行签名--->用户的token不保存--->token是被明文保存的
-
当下次发送token过来的时候使用同样的算法去解析token然后去验证user id
-
相同--->返回资源
-
不相同--->返回code码
-
-
Cookie
-
Cookie是一种非常具体的东西,是指浏览器里能永久存储的一种数据,是浏览器实现的一种数据存储功能
-
由服务器生成,发送给浏览器
-
浏览器把cookie以key-value的形式保存在某个目录文本文件内
-
下次请求同一网站就会把cookie带过去
-
特点:
-
存储在客户端
-
每个域的cookie数量有限
-
-
-
Seesion
-
会话--->服务器给客户端的标识,识别是谁发送给服务端请求的
-
客户端以cookie的方式保存这种标识
-
-
用户访问网站seesion会临时保存在服务端,当用户离开网站的时候seesion会被销毁。
-
如果web服务器做了负载均衡的话下一个操作请求到另一个服务器上seesion会丢失
-
Token
token是多用户下处理认真的最佳方式--->特征
-
无状态、可扩展
-
支持移动设备
-
跨程序调用
-
安全
基于服务器验证方式的一些问题
-
Seesion:用户每次发起请求服务器都需要创建一个记录存储信息。请求增加内存开销增加
-
可拓展性
-
CORS(跨域资源共享):使用ajax抓取另一个域的资源就可能会出现禁止请求的情况
-
CSRF(跨站请求伪造):用户在访问指定网站被利用访问到其他网站
-
基于Token的验证原理
标签:7.12,---,token,Cookie,seesion,服务端,客户端 来源: https://www.cnblogs.com/JunkingBoy/p/15003516.html