• 前后端分离 token和cookie对比


    HTTP协议本身是无状态的,所以需要一个标志来对用户身份进行验证

    1、cookie

    用户登录成功后,会在服务器存一个session,同时发送给客户端一个cookie,这个cookie里面有唯一标识该用户的sessionID

    数据需要客户端和服务器同时存储

    用户再进行请求操作时,需要带上cookie,在服务器进行验证

    cookie是有状态的

     

    2、token

    用户进行任何操作时,都需要带上一个token

    token的存在形式有很多种,header/requestbody/url 都可以

    这个token只需要存在客户端,服务器在收到数据后,进行解析

    token是无状态的

     

    token相对cookie的优势

       1、支持跨域访问 ,将token置于请求头中,而cookie是不支持跨域访问的;

       2、无状态化, 服务端无需存储token ,只需要验证token信息是否正确即可,而session需要在服务端存储,一般是通过cookie中的sessionID在服务端查找对应的session;

       3、 无需绑定到一个特殊的身份验证 方案(传统的用户名密码登陆),只需要生成的token是符合我们预期设定的即可;

       4、 更适用于移动端 (Android,iOS,小程序等等),像这种原生平台不支持cookie,比如说微信小程序,每一次请求都是一次会话,当然我们可以每次去手动为他添加cookie,详情请查看博主另一篇博客;

       5、 避免CSRF跨站伪造攻击 ,还是因为不依赖cookie;

       6、 非常适用于RESTful API ,这样可以轻易与各种后端(java,.net,python…)相结合,去耦合

  • 相关阅读:
    java数组
    python中的换行与不换行
    金融业务知识2---资金的时间价值与跨时期优化
    金融业务知识1---金融和金融系统
    你真的理解正向代理和反向代理吗?
    webpack(9)plugin插件功能的使用
    webpack(8)vue组件化开发的演变过程
    webpack(7)webpack使用vue配置
    webpack(6)webpack处理图片
    webpack(5)webpack处理css文件
  • 原文地址:https://www.cnblogs.com/hooo-1102/p/12048996.html
Copyright © 2020-2023  润新知