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更加安全一些。

相关推荐
聆风吟º8 小时前
CANN开源项目深度实践:基于amct-toolkit实现自动化模型量化与精度保障策略
运维·开源·自动化·cann
较劲男子汉12 小时前
CANN Runtime零拷贝传输技术源码实战 彻底打通Host与Device的数据传输壁垒
运维·服务器·数据库·cann
wypywyp12 小时前
8. ubuntu 虚拟机 linux 服务器 TCP/IP 概念辨析
linux·服务器·ubuntu
风流倜傥唐伯虎12 小时前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
Doro再努力12 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene12 小时前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
不像程序员的程序媛12 小时前
Nginx日志切分
服务器·前端·nginx
忧郁的橙子.12 小时前
02-本地部署Ollama、Python
linux·运维·服务器
醇氧13 小时前
【linux】查看发行版信息
linux·运维·服务器
No8g攻城狮13 小时前
【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤
linux·运维·ubuntu