当前位置:网站首页>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
边栏推荐
- VS2017连接MYSQL
- MySQL master-slave switching steps
- ERROR Error: No module factory availabl at Object.PROJECT_CONFIG_JSON_NOT_VALID_OR_NOT_EXIST ‘Error
- unicloud cloud development record
- 2022 SQL big factory high-frequency practical interview questions (detailed analysis)
- 【解决问题】RuntimeError: The size of tensor a (80) must match the size of tensor b (56) at non-singleton
- DSPE-PEG-Azide DSPE-PED-N3 Phospholipid-Polyethylene Glycol-Azide Lipid PFG
- CNN的一点理解
- sql add default constraint
- 为数学而歌之伯努利家族
猜你喜欢

Cholesterol-PEG-Thiol CLS-PEG-SH Cholesterol-Polyethylene Glycol-Sulfhydryl

pytorch模型微调finetuning训练image_dog(kaggle)

Cholesterol-PEG-NHS NHS-PEG-CLS cholesterol-polyethylene glycol-active ester can modify small molecular materials

Fluorescein-PEG-DSPE 磷脂-聚乙二醇-荧光素荧光磷脂PEG衍生物

Tensorflow steps on the pit while using it

人脸识别AdaFace学习笔记

Chinese garbled solution in UTF-8 environment in Powershell

CAS:1403744-37-5 DSPE-PEG-FA 科研实验用磷脂-聚乙二醇-叶酸

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

pytorch学习笔记10——卷积神经网络详解及mnist数据集多分类任务应用
随机推荐
Podspec automatic upgrade script
UiBot has an open Microsoft Edge browser and cannot perform the installation
Nmap的下载与安装
CAS:474922-22-0 Maleimide-PEG-DSPE 磷脂-聚乙二醇-马来酰亚胺简述
Jupyter内核正忙、内核挂掉
After unicloud is released, the applet prompts that the connection to the local debugging service failed. Please check whether the client and the host are under the same local area network.
wangeditor富文本编辑器上传图片以及跨域问题解决
mysql 事务原理详解
Pytorch学习笔记09——多分类问题
Word vector - demo
自然语言处理相关list
我的训练函数模板(动态修改学习率、参数初始化、优化器选择)
Pytorch每日一练——预测泰坦尼克号船上的生存乘客
如何修改数据库密码
二进制转换成十六进制、位运算、结构体
Pure shell implementation of text replacement
function in js
YOLOX中的SimOTA
MySQL 入门:Case 语句很好用
微信小程序源码获取与反编译方式