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…)相结合,去耦合

最新文章

  1. 编译原理-词法分析03-DFA
  2. 一个靠谱的国外maven镜像地址
  3. Python中的编码
  4. 大数据之pig安装
  5. redis运用连接池报错解决
  6. node-webkit 应用打包发布
  7. 【SPOJ839】最优标号
  8. hdu 4930 Fighting the Landlords--2014 Multi-University Training Contest 6
  9. TDD(测试驱动开发)学习一:初识TDD
  10. webpack code splitting
  11. Java8新特性(一)_interface中的static方法和default方法
  12. Mysql5.7 单表 500万数据迁移到新表的快速实现方案
  13. 【读书笔记】iOS-分类与协议
  14. 「SNOI2019」字符串
  15. 一个随机验证码且不重复的小程序以及求随机输入一组数组中的最大值(Java)
  16. python学习笔记第一周
  17. React Native常用第三方组件汇总--史上最全 之一
  18. Activemq+Zookeeper集群
  19. (装机)关于WINRE/ESP/LRS_ESP/MSR/PBR这些分区
  20. java double类型保留两位小数4种方法

热门文章

  1. B.Petr and a Combination Lock
  2. 工作时使用的vim配置
  3. Log4Net 之将日志记录到数据库的后台实现 (二)
  4. 通过利用immutability的能力编写更安全和更整洁的代码
  5. python 安装opencv及问题解决
  6. 按字节读取txt文件缓存区大小设置多少比较好?
  7. pgtclsh -- PostgreSQL TCLshell 客户端
  8. 三条路线告诉你如何掌握Spring IoC容器的核心原理
  9. centos 6.5 安装 jdk 8
  10. UI自动化前置代码