cookie、session、token理解
Cookie是保存在浏览器上的一些数据,一般通过HTTP响应头set cookie来设置,当然也可以通过JS脚本来直接设置,Cookie是按照网站来进行组织和保存的,每一个网站都可以在浏览器中保存一些Cookie,保存好了之后,浏览器向这个网站发出的请求都会携带这些Cookie,server就可以分析这些Cookie。
session是一个抽象概念,指server端生成的能够将用户请求与后台存储的用户状态信息一一对应的会话机制。每一个session都会生成一个唯一的sessionId,并通过cookie传递到client端。之后的请求只要在 cookie 里带上 sessionId=xxx 这一个键值对即可在server 找到它对应的用户状态信息。(通过cookies实现session)
session 和 token 本质上是没有区别的,都是对用户身份的认证机制,只是他们实现的校验机制不一样而已(一个保存在 server,通过在 redis 等中间件获取来校验,一个保存在 client,通过签名校验的方式来校验),多数场景上使用 session 会更合理,但如果在单点登录,一次性命令上使用 token 会更合适,最好在不同的业务场景中合理选型,才能达到事半功倍的效果。
当server服务器有多个的时候,请求会通过负载均衡来分配到不同的机器上,这时需要各个机器之间能够共享session。目前大型公司都会采用将session存储在redis或memcached等中间件中,当请求发来时,再去中间件取一下session。
如果没有现成的redis集群部署,就可以使用token来校验用户身份。用户在登录时server会生成token并返回到客户端,由于token中本身就携带者ucid之类的信息,因此客户端发送的请求就可以携带token来标识用户。token 主要由三部分组成 1. header:指定了签名算法 2. payload:可以指定用户 id,过期时间等非敏感数据 3. Signature: 签名,server 根据 header 知道它该用哪种签名算法,再用密钥根据此签名算法对 head + payload 生成签名,这样一个 token 就生成了。当 server 收到浏览器传过来的 token 时,它会首先取出 token 中的 header + payload,根据密钥生成签名,然后再与 token 中的签名比对,如果成功则说明签名是合法的,即 token 是合法的。
cookie、session、token理解相关推荐
- 2、cookie session token详解
cookie session token详解 转自:http://www.cnblogs.com/moyand/ 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, ...
- cookie session token区别_彻底理解cookie,session,token
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者: 墨颜丶 cnblogs.com/moyand/p/9047978.html 发展史 ...
- cookie session token区别_cookie、session与token的真正区别
发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记 ...
- cookie session token 之间的区别
cookie 和session的区别 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 ...
- Cookie Session Token 与 JWT 解析
首先先了解一些关键词 认证.授权与凭证 什么是认证(Authentication)? 通俗地讲就是 验证当前用户的身份是否合法的过程,即你是谁?证明"你是你自己"(比如:你每天上下 ...
- 熬夜彻底搞懂Cookie Session Token JWT
一切的根源就是因为 HTTP 是一个无状态的协议. HTTP 是一个无状态的协议 什么是无状态呢?就是说这一次请求和上一次请求是没有任何关系的,互不认识的,没有关联的. 看过电影<夏洛特烦恼&g ...
- 大剑无锋之浅析Cookie/Session/Token
Cookie Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式.Cookie存储的数据量有限,且都是保存在客户端浏览器中.不同的浏览器有不同的存储大 ...
- 测试面试题:cookie/session/token 分别表示什么意思,有什么区别?
测试面试必问: token,cookie,session 有什么区别? 1.解释 1>Cookie cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实 ...
- 复习深入笔记02:魔法方法/cookie,session,token/异常
魔法方法 对象生成 1.先调用__new__方法,生成空对象.控制对象生成. 2.当执行"对象=类名(name=lqz)",触发类的__init__()
- Cookie、token、session的区别是什么?
背景: 最近在总结一些容易理解混淆的概念,之前面试的时候提到过,我觉得也说不清楚,这两天项目做接口测试发现用的cookie而不是之前的token,于是总结一下,便于以后用到的时候再阅读以及分享给需要的 ...
最新文章
- mysql 主从相关
- BZOJ 3240([Noi2013]矩阵游戏-费马小定理【矩阵推论】-%*s-快速读入)
- Hive学习笔记 —— Hive概述
- 每日一题:leetcode989.数组形式的整数加法
- Request.ServerVariables
- [vue-cli]vue-cli生成的项目可以使用es6、es7的语法吗?为什么?
- 儿童节到了,你会让孩子将来当程序员吗?
- aotu.js 动态运行脚本_素材丨一键生成动态LOGO,3000+个样式随你选!
- Android开发入门的正确姿势,你get到了吗?
- 中国5G务实发展 向大规模商用推进
- Spring Boot 2.x 集成 Quartz 定时器 jdbc 持久化、配置集群
- c语言扎金花编程,一个C语言开发的炸金花纸牌游戏附带vs性能分析报告
- windows下如何安装ipython_Windows下IPython安装
- Docker从基础到企业生产应用学习笔记大总结
- java 自动登录_java代码实现自动登录功能
- iOS开发-记录下在开发过程中遇到的问题的解决方案及经验总结-1
- php工程师的学习之道以及需要掌握的知识体系
- mysql too long_mysql中data too long for column错误的一种解决办法
- 还用户一片净土:广告自动拦截功能明年登陆Chrome
- mapi java_Powershell从注册表中查询默认MAPI客户端的例子