浅谈cookie、session、token

为什么要使用cookie、session、token,因为http协议是无状态的,服务端无法区分到底是哪个客户端在访问自己

1.cookie

cookie是什么:cookie就是浏览器存放在用户电脑上的一个文本文件。

cookie的生成:客户端首次访问服务端,并在header中携带set-cookie,服务端会返回给客户端cookie,并存放在客户端。cookie中的内容由后端开发在代码中定义。

cookie的约束:cookie最大为4KB,同一个域名,最多存放50个cookie。

cookie的使用:浏览器在向服务端发送请求时,会自动在请求头中添加cookie,服务器接收cookie,解析cookie,验证信息成功后返回响应

2.session

session是什么:session是用于对客户端身份校验的。

session的生成:客户端首次访问服务端,服务端会生成session及session id,并保存在服务端,将session id添加到cookie中返回给客户端。

session的约束:1.用户量巨大时,会占用大量的服务器资源,影响服务器性能。2.当服务端实现负载均衡时,很难确定session存储在哪个服务器上。3.session容易被crsf(跨站请求伪造)

session的使用:浏览器发送请求时会在header中添加cookie,服务端会解析到session id,在数据库中进行比较,已确实是哪个用户,并将该用户的数据进行响应

3.token

token是什么:token又名令牌,用于对用户进行鉴权,目前最常见的鉴权方式。

token的生成:客户端进行登录时,服务端会返回token,客户端将token存放的localStroage,token一般是由userid+时间戳+令牌+秘钥(固定字符串),通过加密后实现的。

token的使用:客户端发送请求时,会自动将token添加到header中,服务端收到header后,会自动解密,确定是哪个用户在请求数据,返回该用户的数据。

token的优点:1.由于token中存在用户的信息,鉴权时直接在数据库中进行查找,所以可以很好的适应负载均衡的服务端。2.token是开发者专门为防护crsf设计的,浏览器访问攻击者网址时,不会自动携带token,攻击者网址无法获得token。就无法通过服务端校验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值