Token

article/2025/10/12 14:11:43

Token笔记

  • 是什么
    • Session
    • Cookie
    • token
  • 为什么
    • Session和Cookie 区别:
    • token和Session区别:
    • Session缺陷
    • token相比而言:
  • 怎么做
    • token工作流程:
    • token结构:

是什么

web应用程序是使用HTTP协议来传送数据的。而HTTP是无状态的协议。所以一旦HTTP报文交换完成,客户端和服务器端就会谁也不认识谁了,这意味着服务器无法从连接上跟踪会话。例如当用户A登陆账号购买了一件商品并放入购物车中,当再次进入该网站购买商品时,服务器已经无法判断是哪个用户(会话)了,所以引入以下几种机制用于跟踪会话。

Session

当用户打开某个web应用时,便与web服务器产生一次Session。服务器使用Session把用户的信息临时保存在了服务器上,用户离开网站后Session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是Session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候Session会丢失。

Cookie

Cookie 是保存在本地终端的数据。Cookie 由服务器生成,发送给浏览器,浏览器把Cookie 以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该Cookie 发送给服务器。由于Cookie 是存在客户端上的,所以浏览器加入了一些限制确保Cookie 不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的Cookie 数量是有限的。

token

token的意思是“令牌”,是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接token请求服务器)。还可以把不变的参数也放进token,避免多次查库。

为什么

Session和Cookie 区别:

· 数据存放位置不同:Session数据是存在服务器中的内存,Cookie 数据存放在浏览器当中。

· 安全程度不同:Cookie 放在服务器中不是很安全,Session放在服务器中,相对安全。

· 性能使用程度不同:Session放在服务器上,访问增多会占用服务器的性能;考虑到减轻服务器性能方面,应使用Cookie 。

· 数据存储大小不同:单个Cookie 保存的数据不能超过4K,一个站点最多保存20个Cookie ,Session对象没有对存储的数据量的限制,其中可以保存更为复杂的数据类型,根据服务器大小来定。

token和Session区别:

  • token是开发定义的,Session是http协议规定的;
  • token不一定存储,Session存在服务器中;
  • token可以跨域,Session不可以跨域,它是与域名绑定的。

Session缺陷

  • 传统项目使用Session存在缺陷:放入到服务端,如果负载均衡做得不好将会导致Session很容易消失,用户体验很差;
  • 每个用户的登录信息都会保存到服务器的Session中,随着用户的增多,服务器开销会明显增大;
  • 由于Session是存在与服务器的物理内存中,所以在分布式系统中,这种方式将会失效。虽然可以将Session统一保存到Redis中,但是这样做无疑增加了系统的复杂性,对于不需要redis的应用也会白白多引入一个缓存中间件;
  • 对于非浏览器的客户端、手机移动端等不适用,因为Session依赖于Cookie ,而移动端经常没有Cookie
  • 由于基于Cookie ,而**cookie无法跨域,所以Session的认证也无法跨域,对单点登录不适用**,Session共享效率低;
  • 前后端分离系统中更加不适用,后端部署复杂,前端发送的请求往往经过多个中间件到达后端,Cookie 中关于Session的信息会转发多次;

token相比而言:

  • 简洁:JWT Token数据量小,传输速度也很快
  • 适用于分布式微服务:因为JWT Token是以JSON加密形式保存在客户端的,所以JWT是跨语言的,原则上任何web形式都支持,不需要在服务端保存会话信息,也就是说不依赖于Cookie 和Session,所以没有了传统Session认证的弊端
  • 单点登录友好:使用Session进行身份认证的话,由于Cookie 无法跨域,难以实现单点登录。但是,使用token进行认证的话, token可以被保存在客户端的任意位置的内存中,不一定是Cookie ,所以不依赖Cookie ,不会存在这些问题
  • 适合移动端应用:使用Session进行身份认证的话,需要保存一份信息在服务器端,而且这种方式会依赖到Cookie(需要 Cookie 保存 SessionId),所以不适合移动端

怎么做

token工作流程:

1、客户端使用用户名和密码请求登录

2、服务端收到请求,验证用户名和密码

3、验证成功后,服务端会签发一个token,再把这个token返回给客户端

4、客户端收到token后可以把它存储起来,比如放到Cookie 中

5、客户端每次向服务端请求资源时需要携带服务端签发的token,可以在Cookie 或者header中携带

6、服务端收到请求,然后去验证客户端请求里面带着的token,如果验证成功,就向客户端返回请求数据

JWT就是上述流程当中token的一种具体实现方式,其全称是JSON Web Token,官网地址:https://jwt.io/

在这里插入图片描述

token结构:

在这里插入图片描述
图片来自学习时整理,侵删

SqlSession 的作用类似于一个 JDBC 中的 Connection 对象,代表着一个连接资源的启用。具体而言,它的作用有 3 个:

  • 获取 Mapper 接口。
  • 发送 SQL 给数据库。
  • 控制数据库事务。

http://chatgpt.dhexx.cn/article/Su5WH11Z.shtml

相关文章

Java 中 Token 是什么,有哪些用途

简介 Token 是一种身份验证机制,通常由服务器生成并返回给客户端,客户端在后续的请求中携带 Token,以证明自己的身份。在 Java 中,Token 的应用场景非常广泛,例如用户登录、API 认证、OAuth 授权等等。 在用户登录的…

Token的作用及原理

讲到Token的作用和原理,网上有很多相关的技术文章,通过搜集整理并加入自己的理解体会,做一个总结整理,希望可以帮助到更多有需要的人。 1、token作用及原理 Token,即令牌,是服务器产生的,具有…

Token和Jwt的区别

Token基本原理 Token(就是加密的字符串,使用MD5,等不可逆加密算法,一定要保证唯一性) 客户端使用用户名跟密码请求登录 服务端收到请求,去验证用户名与密码 验证成功,服务端会签发一个Token保存到(Session,redis,mysql…)中,然后再把这个 …

什么是token及怎样生成token

什么是token Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。 基…

token是什么?

token的意思是令牌,是服务端生成的一串字符串,作为客户端进行请求的一个标识。 当用户第一次登录后,服务器生成一个token,并将token返回给客户端,之后客户端只需要带上这个token前来请求数据即可,无需再带…

Token是什么 Token登录认证

Token 是在服务端产生的一串字符串。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位。如果这个 Token 在服务端持久化(比如存入数据库&a…

什么是Token(令牌)

Acess Token 访问资源接口(API)时所需要的资源凭证 简单token 的组成: uid(用户唯一的身份标识) 、time (当前时间的时间戳) ,sign(签名,token的前几位以hash算法压缩成的一定长度的16进制字符…

什么是token?token是用来干嘛的?

相信很多从事计算机行业的朋友都听说过token这么个东西,但是其他行业的人就很少了解到token,下面就给大家来详细介绍一下token是什么意思?token是用来干嘛的这一块的内容,希望能帮助到大家。 🏻 token是什么意思 作为…

究竟什么是token??

基于服务器验证方式的验证流程: 我们都是知道HTTP协议是无状态的,这种无状态意味着程序需要验证每一次请求,从而辨别客户端的身份。在这之前,程序都是通过在服务端存储的登录信息来辨别请求的。这种方式一般都是通过存储Session来…

python 处理 MovieLens 数据

文章目录 一、总述二、处理流程1. 处理 users 数据2. 处理 movies 数据3. 处理 ratings 数据4. 将 users、movies 和 ratings 数据合并5. one-hot 处理6. 完整代码 一、总述 该文记录处理 MovieLens-1m 数据集的步骤,首先分别处理用户、电影和评分数据,…

电影数据集总结:Netflix、MovieLens、LDOS-CoMoDa、AdomMovie

数据集: 1.Netflix 描述:包含Netflix上48万多个随机选取的匿名用户,对于1万7千多部电影的1兆多个电影评分 时间:1988.10~2005.11 内容: 包括training set,movie titles,probe set&#xff0…

从IMDB上爬取MovieLens数据集中的详细电影信息

文章目录 基于协同过滤的电影推荐系统数据集HTML页面分析爬虫代码运行时间百度网盘链接 基于协同过滤的电影推荐系统 用这个数据集实现了一个小型的电影推荐网站,GitHub代码 数据集 数据集是MovieLens提供的ml-latest-small https://grouplens.org/datasets/mov…

数据分析实例:MovieLens电影数据分析

数据分析实例:MovieLens电影数据分析 数据准备 数据集来源:grouplens.org/datasets/movielens/ 下载 ml-1m.zip,read me 中有电影评分介绍 MovieLens 1M电影分级。 稳定的基准数据集。 6000个用户观看4000部电影时获得100万个评分。 发布2…

Spark Hive实现基于协同过滤的电影推荐(MovieLens数据集)

这篇文章记录一下我之前做过的通过Spark与Hive实现的基于协调过滤的电影推荐。这篇文章只能提供算法、思路和过程记录,并没有完整的代码,仅尽量全面地记录过程细节方便参考。 一、数据获取 数据集是从下面这个地址下载的,数据集主要内容是关…

基于用户的协同过滤Movielens电影推荐系统简单实例

基于用户的协同过滤Movielens电影推荐系统简单实例 一、Movielens数据集 1. MovieLens数据集的下载(Download) 1) 从网站下载数据 链接: https://grouplens.org/datasets/movielens/. 有好几种版本,对应不同数据量,…

ML之GB:基于MovieLens电影评分数据集利用基于图的推荐算法(Neo4j图数据库+Cypher查询语言)实现对用户进行Top5电影推荐案例

ML之GB:基于MovieLens电影评分数据集利用基于图的推荐算法(Neo4j图数据库Cypher查询语言)实现对用户进行Top5电影推荐案例 目录 基于MovieLens电影评分数据集利用基于图的推荐算法(Neo4j图数据库Cypher查询语言)实现对用户进行Top5电影推荐案例 1、定义数据集 1.…

从IMDB上爬取MovieLens-1m的补充数据(电影海报和简介)

文章主要内容 本人是想做推荐算法相关的一名在校生,目前想做多模态融合,而MovieLens-1m数据集只有电影信息和用户信息,于是有想法能否在原有的电影推荐公开数据集中而外获取电影海报(图片信息)和电影简介(…

对Movielens数据集进行评分预测

对Movielens数据集进行评分预测 实验源码:lab3代码.ipynb 实验环境:vscode colab 数据解释: movies.dat的数据如下 1::Toy Story (1995)::Animation|Childrens|Comedy 2::Jumanji (1995)::Adventure|Childrens|Fantasy 3::Grumpier Old…

ML之KG:基于MovieLens电影评分数据集利用基于知识图谱的推荐算法(networkx+基于路径相似度的方法)实现对用户进行Top电影推荐案例

ML之KG:基于MovieLens电影评分数据集利用基于知识图谱的推荐算法(networkx基于路径相似度的方法)实现对用户进行Top电影推荐案例 目录 基于MovieLens电影评分数据集利用基于知识图谱的推荐算法(networkx基于路径相似度的方法)实现对用户进行Top电影推荐案例 # 1、定…

利用pandas对MovieLens电影数据分析

掌握pandas基本语法操作「pandas基础入门中有详细语法格式」后,就可以利用pandas做一些简单实例的数据处理。 Movie电影数据分析 首先需要下载电影数据集MovieLens,这个数据集中包含用户数据;电影数据;电影评分表。电影数据中包…