cookie/session的关系

什么是cookie,session

我们平时去医院看病时,从进医院那一刻,我们最开始要做的就是挂号(需要我们填写表格,记录一些核心信息,医生会把这些信息录入电脑,并给我办一个就诊卡,卡里面只储存了一个id),当我们拿着这个就诊卡去对应的科看病时,比如我们去儿科,儿科医生就会拿着我的就诊卡,在电脑上面刷一下,电脑上面就会出现关于我对应的信息,并根据我的症状,给我开一些检查,然后我再拿着我的就诊卡去检验科,检验科也只需要刷一下卡,电脑就会出现我需要检查的科目。

这里本人就类似于cookie,就诊卡就相当于sessionid,电脑上的信息就相当于session。

cookie和session都是常用于客户端和服务器端储存和跟踪用户信息的机制,主要还是应用于Web开发中。

cookie介绍:

1.cookie的简介:

当用户在进行登录的时候,服务端会将登录的信息(文本信息,一般是JSON格式)返回给客户端,而客户端会储存这些信息,当下次客户端请求访问服务端的接口的时候,客户端会携带这些登录的信息。Cookie会被储存到请求标头中,是一个键值对信息文本,多个键值对使用,进行区分。

流程图如下:

2.Cookie的工作原理:

1.浏览器在登录的时候,服务端进行创建cookie,将携带信息的cookie返回给客户端。

2.客户端在接受到cookie后,会将cookie储存在本地(浏览器所在设备的内存或者硬盘)

3.浏览器再次进行请求服务端的时候,会进行携带cookie。

4.读取cookie,服务端进行接收到浏览器的请求的时候,会进行读取请求头中的cookie信息。

5.校验cookie中的登录态信息是否准确。

6.返回请求接口的数据的信息。

session的介绍:

1.Session简介:

session是服务端的储存机制,用来跟踪用户的状态,Session在用户和服务端建立连接后创建,并在用户退出或者Session超时后销毁,并且Session默认依赖于Cookie的。

默认使用Session实现登录的时候,储存到本地服务器中,借助cookie进行协同保存登录态。

Session是储存在服务器中的,当服务器如果宕机或者重启的话,原本在服务器生成的Session都会消失,如果基于本地服务器进行实现Session,此时的cookie请求过去的Sessionid就会失效。

2.Session的流程图:

2.Session的特性:

储存限制:Session是没有储存限制的,Cookie仅需要储存一个占用极小的Sessionid,Session中储存的登录态信息一般储存在服务端中,所以只要硬件足够强,就没有什么限制。

生命周期:Session的生命周期通常取决于会话的持续时间,可以在用户关闭浏览器依然保持,直到Session超时或者被显式销毁。

安全性:由于Session储存在服务端,因此相比于Cookie更加安全,但是Session的安全性,也来自于Sessionid的安全性。

Session和Cookie的区别:

1.储存位置:Session储存在服务端,Cookie储存在客户端浏览器。

2.储存大小:Cookie大小受限,Session理论上没有大小限制。

3.安全性:Session比Cookie更加安全一些。

相关推荐
SkyWalking中文站1 天前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控
雪梨酱QAQ1 天前
Kubeneters HA Cluster部署
运维
江华森2 天前
Spring Cloud 微服务全栈实战:从 Eureka 到 Docker Compose 一文贯通
运维
江华森2 天前
Matplotlib 数据绘图基础入门
运维
江华森2 天前
NumPy 数值计算基础入门
运维
乘云数字DATABUFF6 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--7 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森8 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜8 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB9 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维