当前位置: 首页 > news >正文

http状态,cookie、session、token的对比

http是无状态的,也就是说断开会话了服务器就不记得任何事情了,但这样对于用户会很麻烦,因为要不停输入用户名和密码

cookie是放在浏览器里的数据,第一次访问后服务器会set cookie,然后浏览器保存这个cookie,没发送都带着这个cookie,这样就不用每次我们手动输入账户名和密码,但这并不安全,假设电脑被黑了,浏览器里的个人信息就泄露了。并且一旦我们换个浏览器或者换台电脑,就没有这个cookie了。
在这里插入图片描述
所以,当用户第一次登陆后,服务器会创建一个带有签名的无规律字符串session(会话)返回给用户浏览器,这样就算黑客拿到session id也没啥大用,这是带签名的。当session的生命周期结束就会让用户重新输入用户名和密码
在这里插入图片描述
但是随着互联网发展,访问量激增,每个用户都存储一个session id在服务器内存里,服务器吃不消。并且session保存在一个服务器节点里,要是访问到别的节点上就识别不出来了。json web token(jwt)应运而生。现在是token(令牌)存在了浏览器客户端,服务器端只是来验证这个token,相当于是cpu换内存用
在这里插入图片描述
具体来说就是客户端发送header、payload、signature,然后服务端通过前两模块和加密密钥来计算比对signature,
token的方式,可以看出服务端密钥的重要性就显而易见,一旦泄露整个机制就崩塌了,这个时候就需要考虑HTTPS了。
在这里插入图片描述

相关文章:

  • COMSOL传热建模
  • etcd java 客户端jetcd库踩坑日志
  • 【HDFS】Decommision(退役) EC数据节点剩最后几个块卡住的问题
  • 超低功耗32位单片机MM32L0130
  • 【Android】隐藏settings中的二级菜单
  • 【Kubernetes】k8s中容器之间、pod之间如何进行网络通信?
  • 【比较mybatis、lazy、sqltoy、mybatis-flex操作数据】操作批量新增、分页查询(二)
  • 计算机网络(2)-----数据链路层
  • 集合篇之ArrayList
  • 【软件测试】--功能测试4-html介绍
  • untiy 室内灯光最佳实践
  • 爬取博客的图片并且将它存储到响应的目录
  • C#高级:DataGridView的详解
  • 练习2-线性回归迭代(李沐函数简要解析)
  • 命令行启动mongodb服务器的问题及解决方案 -- Unrecognized option: storage.journal
  • CODING 缺陷管理功能正式开始公测
  • CSS中外联样式表代表的含义
  • django开发-定时任务的使用
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • miaov-React 最佳入门
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Sass 快速入门教程
  • scrapy学习之路4(itemloder的使用)
  • 安装python包到指定虚拟环境
  • 编写高质量JavaScript代码之并发
  • 记录:CentOS7.2配置LNMP环境记录
  • 简单易用的leetcode开发测试工具(npm)
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 前端技术周刊 2019-02-11 Serverless
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 移动端唤起键盘时取消position:fixed定位
  • 用Python写一份独特的元宵节祝福
  • 怎么把视频里的音乐提取出来
  • 自制字幕遮挡器
  • k8s使用glusterfs实现动态持久化存储
  • 说说我为什么看好Spring Cloud Alibaba
  • #、%和$符号在OGNL表达式中经常出现
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (floyd+补集) poj 3275
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (补)B+树一些思想
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (七)Knockout 创建自定义绑定
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .NET企业级应用架构设计系列之开场白
  • .NET中 MVC 工厂模式浅析
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • [Android Studio 权威教程]断点调试和高级调试
  • [AutoSar]BSW_Com07 CAN报文接收流程的函数调用