Cookie、session、token的区别

本文介绍了HTTP无状态特性导致的身份验证问题,以及Cookie、Session和Token三种解决方案的工作原理和优缺点。Cookie保存在客户端,易被截取,安全性较低;Session存储在服务器端,但大量用户会导致服务器性能压力;Token则用于解决跨域问题,通过JWT生成,保存在客户端,有效时间可配置,减轻服务器负担。总结来说,Cookie在客户端,Session在服务器,Token通过JWT在客户端进行身份验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cookie、session、token都是为了解决http无状态得这个缺点而出现的,都是服务端返回的,用来鉴权的。cookie是保存在客户端的,不安全。有被非法用户截取的风险。

cookie是保存在浏览器的缓存中的,过期时间是服务器端来确定的,只要浏览器关了,就会失效。也可以本地持久化保存。
比如客户端发一个请求给服务器端,服务器端会在响应头的setcookie字段中返回cookie,个数由编程人员确定,没有限制,包括cookie的名字,value,域,路径,过期时间。

而session呢,是保存在服务器端的,通过cookie来传递的。比如客户端发请求过来,服务器端会把sessionid放在setcookie中,返回给客户端,客户端进行登录请求时,就会带着这个值,服务器拿到以后,这里先说下,服务器端对session保存的方式有两种,一种是存在一个文件中,一种是放在数据库中。服务器拿到客户端发来的sessionid到自己本地去找对应的sessionid,然后验证该sessionid关键的用户是不是这个请求的客户端,是的话,就给响应。
但是这样会有一个问题,如果有几亿用户同时发请求,那么服务器需要保存几亿用户的sessionid,所以对服务器的性能造成了严重的压力。

Token的出现可以解决微服务部署的跨域访问问题。
用户登录请求到一个专门的认证服务上进行认证,认证成功以后,返回通过加密后的token,客户端拿到之后,保存,下次还是这个用户访问的时候,就会带着这个token进行请求,被请求得服务拿着这个token去认证中心看下是不是该用户的,是,那么就给通过,返回响应结果。

Token的有效时间:
①15分钟以内
②一般15天

这个值可以配置。

总结:
cookie是保存在客户端
session是保存在服务器端
token是服务器端通过JWT生成,保存在客户端

session和token都是通过cookie作为载体进行传递的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如梦@_@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值