当前位置:网站首页>Session和Cookie,Token
Session和Cookie,Token
2022-07-31 05:17:00 【Forevermoremo】
Session
Session是一种在服务器端记录用户信息的技术,一般Session用来在服务器端与客户端之间共享数据。
Cookie
Cookie是一种在客户端记录用户信息的技术,因为http协议是无状态的,为了解决这个问题而产生了Cookie。
Cookie存于浏览器内置Cookies中。如图:

Cookie是一段不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。
客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的地址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。
Session与Cookie
Session一般情况下依赖于Cookie,Session创建出来把sessionId通过Cookie传递,客户端请求时再传递给服务器。因此需要确认浏览器是否开启Cookie存储。
基于服务器端的验证如下:
1.用户通过用户名和密码发送请求。
2.程序校验,如果客户端请求不包含sessionId,则服务器为此客户端创建一个session并且生成一个与此session相关联的sessionId,并返回SESSIONID标识给客户端。
4.客户端储存SessionId于Cookies中,每次发起请求浏览器将自动携带Cookie到服务器端。
5.服务器端检索。检索成功则返回请求数据,检索失败则返回错误码。
如图:

Token
基于Token的身份验证是无状态的,我们不需将用户信息存在服务器或Session中。
基于Token的身份验证的过程如下:
1.用户通过用户名和密码发送请求。
2.程序校验,校验成功后就返回Token给客户端。
4.客户端储存Token,每次访问API携带Token到服务器端。
5.服务器端采用filter过滤器校验。校验成功则返回请求数据,校验失败则返回错误码。
每次请求token应该在HTTP的头部发送从而保证了Http请求无状态。我们可以通过设置服务器属性Access-ControlAllow-Origin:* ,让服务器能接受到来自所有域的请求。
过程如图:

总结
Session和Cookie,Token 都是作用于服务器端与客户端的数据共享。
Session是基于服务器的验证,随着Web移动端兴起,也逐渐暴露了一些内存开销、可拓展性、跨域问题 ,Token这种方式恰好能够解决这些问题,虽然服务器涉及得更多,但是也方便了我们前端去解决跨域等问题。
参考:
https://www.cnblogs.com/moyand/p/9047978.html
https://blog.csdn.net/Deft_MKJing/article/details/53762277
边栏推荐
- 超参数优化-摘抄
- Cholesterol-PEG-Azide CLS-PEG-N3 胆固醇-聚乙二醇-叠氮 MW:3400
- VS connects to MYSQL through ODBC (1)
- jenkins +miniprogram-ci upload WeChat applet with one click
- Nmap的下载与安装
- 微信小程序源码获取与反编译方式
- Cholesterol-PEG-Amine CLS-PEG-NH2 Cholesterol-Polyethylene Glycol-Amino Research Use
- crontab的定时操作
- CLS-PEG-FITC Fluorescein-PEG-CLS 胆固醇-聚乙二醇-荧光素简介
- Research reagents Cholesterol-PEG-Maleimide, CLS-PEG-MAL, Cholesterol-PEG-Maleimide
猜你喜欢

wangeditor编辑器内容传至后台服务器存储

Cholesterol-PEG-Amine CLS-PEG-NH2 Cholesterol-Polyethylene Glycol-Amino Research Use

Cholesterol-PEG-Acid CLS-PEG-COOH Cholesterol-Polyethylene Glycol-Carboxyl Modified Peptides

flutter arr dependencies

Cholesterol-PEG-Amine CLS-PEG-NH2 胆固醇-聚乙二醇-氨基科研用

CLS-PEG-FITC Fluorescein-PEG-CLS 胆固醇-聚乙二醇-荧光素简介

CAS:474922-22-0 Maleimide-PEG-DSPE Phospholipid-Polyethylene Glycol-Maleimide Brief Description

活体检测PatchNet学习笔记

PyTorch学习笔记08——加载数据集

UiBot has an open Microsoft Edge browser and cannot perform the installation
随机推荐
pytorch学习笔记10——卷积神经网络详解及mnist数据集多分类任务应用
Cholesterol-PEG-Thiol CLS-PEG-SH 胆固醇-聚乙二醇-巯基
数据预处理、特征工程和特征学习-摘抄
Embedding前沿了解
Pure shell implementation of text replacement
mPEG-DSPE 178744-28-0 甲氧基-聚乙二醇-磷脂酰乙醇胺线性PEG磷脂
opencv之访问图像像素的三种方法
Xiaomi mobile phone SMS location service activation failed
浅谈对分布式模式下CAP的理解
Pytorch学习笔记13——Basic_RNN
Understanding of objects and functions in js
MySQL 出现 The table is full 的解决方法
mysql 事务原理详解
用pytorch里的children方法自定义网络
CLS-PEG-FITC Fluorescein-PEG-CLS 胆固醇-聚乙二醇-荧光素简介
podspec 校验依赖出错问题 pod lib lint ,需要指定源
Hyperparameter Optimization - Excerpt
DSPE-PEG-Azide DSPE-PED-N3 磷脂-聚乙二醇-叠氮脂质PFG
break and continue exit in js
Understanding of js arrays