cookie一般用于简单的登录校验。
cookie存储格式为字符串,每次请求时浏览器自动携带。如果数据多了,则加重http请求负担。
另外cookie也不能跨站。
session存储在服务器中,可以存储对象格式的数据,session为每一个用户生成唯一的sessionid,并放在cookie中,通过这种方式,传输时只需要携带sessionid就可以了。
session存储在sever,负载均衡如何实现?复制session或许并不是好的方式,比较常用的是把session存储在redis,或session粘连(由负载均衡服务器实现,如nginx的sticky模块)。
token是一种简单的校验。token是一种加密的字符串,由服务器端生成,它相当于授权令牌,也就是一次授权后在一段时间内可用,相当于 (userid+express)然后用公钥整体加密,只要私钥不泄露,很难伪造,也比较安全。
token可用很容易的跨平台,但token一但生成,必须在有效期过期后才可注销。(如果要校验,就又得存储在服务器上了,又回到跨平台的痛点)
cookie和session本质一样,都会有csrf攻击,token和cookie一样直接暴露安全性也不是绝对的。
本篇完,还有疑问?留下评论吧