网络请求中,cookie和token的区别

作者:super_wei
链接:https://www.jianshu.com/p/a150932b4b99

在平常开发中,用于用户登录校验的方法可以分为cookie和token,这两者比平常开发都有用到,那区别是什么,原先我觉得用户登录是后台的事不必多了解,用多了以后就开始好奇,为什么有些项目用cookie 有些用token?

一、cookie

cookie之前在做存储区别的时候有说过,大小只有4kb, 往返于客户端和服务端之间。在用户校验过程中,主要还是和服务端的session配合使用。

大概的使用流程是,用户请求登录接口,服务端进行用户校验,校验通过则把用户信息储存在服务端的session当中,并通过set-cookie把userId保存在浏览器当中,后续的每次请求cookie都会携带userId来服务端进行校验。

3d741d29ccc2ea2cb5c0b38baedf5b71.png

cookie的优点:
1、便于理解,比较好掌握,用户数据在服务端相对安全
 2、session集中管理用户信息,可直接封禁某个用户。
 3、属于http规范,默认被浏览器存储
cookie的不足:
 1、所有信息都存在session当中会占用内存
 2、不支持跨域共享cookie,随着大型项目支持的范围越来越多,cookie的方式也逐渐满足不了项目的需求。
  3、为了安全,限制比较多
  4、session多进程多服务器时不好同步

二、token

相对于cookie自动携带在浏览器当中不同的是,token是自定义携带。在进行用户登录中,服务端判断登录通过,接口会返回一个加密的数据,用户的所用信息都储存在这个加密数据当中,在客户端获取这个数据以后本地进行存储,并在后续的请求当中自定义放在Request Headers当中。

3cae333b30f9fd8d64965fed23f506a5.png

token的优点:
    1、来自民间的力量(不属于http规范,cookie是学院派),使用起来比较自由
    2、没有跨域限制
    3、不占用服务器内存,多进程多服务器不受影响
token的缺点:
    1、数据请求在客户端,无法快速封禁某个用户。(也是可以实现,比如建立黑名单)
     2、体积比cookie大,会增加请求数量(影响也不是很大)
     3、存在安全隐患,所有信息都存在token中,密钥一旦泄露敏感信息就有可能被窃取。

三、如何选择cookie还是token?

如果有严格的用户管理要求的用cookie+session的方式,如果没有严格要求推荐使用token方式,会减少很多服务端的压力。

往期干货:
 26个经典微信小程序+35套微信小程序源码+微信小程序合集源码下载(免费) 干货~~~2021最新前端学习视频~~速度领取
 前端书籍-前端290本高清pdf电子书打包下载
点赞和在看就是最大的支持❤️
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值