7.12理解Cookie与token

时间:2021-07-12
本文章向大家介绍7.12理解Cookie与token,主要包括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是多用户下处理认真的最佳方式--->特征

  • 无状态、可扩展

  • 支持移动设备

  • 跨程序调用

  • 安全

基于服务器验证方式的一些问题
  1. Seesion:用户每次发起请求服务器都需要创建一个记录存储信息。请求增加内存开销增加

  2. 可拓展性

    1. CORS(跨域资源共享):使用ajax抓取另一个域的资源就可能会出现禁止请求的情况

    2. CSRF(跨站请求伪造):用户在访问指定网站被利用访问到其他网站

基于Token的验证原理
It's a lonely road!!!

原文地址:https://www.cnblogs.com/JunkingBoy/p/15003516.html