cookie、session、token之间的区别?

文章介绍了HTTP协议的无状态特性导致了cookie的诞生,用于保持用户登录状态。cookie包含Key/Value键值对,工作流程包括服务器设置和浏览器自动发送。由于cookie的安全性问题,session应运而生,每个用户拥有唯一sessionID。当用户量大时,session可能导致服务器过载,于是token(如JWT)成为解决方案,它以签名密文作为通行证,减轻服务器存储压力。
摘要由CSDN通过智能技术生成

解决问题:如何保持用户登录状态?

cookie出生背景:浏览器与服务器间采用的是 http协议,又因为http是无状态的,服务器接收请求却不知道是你发送的请求。为了让服务器识别用户从而引入了cookie。

cookie:(服务器存储在浏览器的数据而已)

什么是cookie?

cookie是浏览器保存在用户电脑上的一小段文本,通俗的来讲就是当一个用户通过 http访问到服务器时,服务器会将一些 Key/Value键值对返回给客户端浏览器,并给这些数据加上一些限制条件,在条件符合时这个用户下次访问这个服务器时,数据通过请求头又被完整地给带回服务器,服务器根据这些信息来判断不同的用户。

cookie的工作流程:

服务器发起数据请求,浏览器会对服务器发起的数据请求进行cookie设置(set-cookie)。cookie里面有名和值两个重要属性,服务器会把名和值属性里的内容填充完整,浏览器会保存起来,以后服务器每发一个请求都会自动附上cookie。

session:(为了解决cookie存储用户私密数据不安全而生)

session出生背景:打开浏览器就可以看到保存了哪些cookie,用户保存浏览器的cookie,一但被黑里面的数据会不安全,所有出现了Session(会话)。

session的工作流程:

访问浏览器是浏览器会给每个用户一个唯一的sessionID和结束会话的时间,因为是服务器自己定义的东西一般会保存在数据库里。浏览器将请求访问的信息里加set-Cookie{sessionID:xxx,max-age:xx} 添加sessionID、再把会话结束时间对应设置为cookie的有效期。浏览器拿到服务器传回来的cookie进行保存。

以后浏览器每次发送请求都会自动发送cookie到相应的服务器哪里。直到cookie的有效期结束

 

说人话就是:去游乐园玩,(浏览器)我购买票后(首次输入的密码及用户名后),工作人员(服务器)会给我做一个通行证以及这个通行证可以用多久告诉我(浏览器),有效期内我进出都不需要再买票,只有通行证符合就放行。

token:(为了应对session的不足产生的)

出生原因:当同一时间,访问的人太多因为session是存储在服务器上的,会出现过载情况。如果存储在数据库万一数据库崩溃将导致数据无法请求。

使用服务器生成的签名密文JWT作为浏览器的通行证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值