分析Session和Token

技术分析Session和Token这篇文章主要讲解了“分析Session和Token”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分析Session和Token”吧!01

本文主要讲解“分析会话和令牌”,简单明了,易学易懂。请跟随边肖的思路一起学习《分析会话与表征》!

01.Cookie

是在客户端(浏览器)保存用户信息的机制;cookie由服务器生成,发送到浏览器,然后浏览器将cookie以键值对的形式保存在客户端的目录中。每个浏览器的存储大小会有一些差异,一般不超过4KB

在下一个请求中,Cookie将被发送到服务器,服务器将分析Cookie中的信息并验证身份。

例如,当你加入一家公司时,你会得到一张工作卡,上面有你的名字、工作号码、部门等信息。当你进入工作场所时,你可以带着工作证进出。

但是Cookie不能跨域名使用;就好像我拿着公司的工作证去你们公司,保安肯定不让我进去。

02.Session

存储在服务器中,可用于记录客户状态;

例如,我们经常使用Session保存客户的基本信息和权限信息。用户第一次登录后,服务器将创建一个会话,并将会话ID返回给浏览器。浏览器通常将其写入一个Cookie,也称为会话Cookie。当浏览器再次访问时,它只需要使用SessionID从服务器上查找会话。

此外,这个SessionID不必保存在Cookie中,但是对于浏览器客户端来说,每个人的默认做法是将其放在Cookie中。

03.Cookie 和 Session

关于cookie和会话的区别,很多同学会回答:“cookie存储在客户端,会话存储在服务器端”。其实这个想法并不全面:

Cookie是一个真实的东西,一个非常具体的东西,也就是一条数据。会话是一个抽象的概念,或者说模式方法,它有很多实现方案。

比如Tomcat的实现方法:将状态保存在服务器中,然后生成一个JSESSIONID放入Cookie中;请求到来后,用JSESSIONID在服务器端查询和验证状态。

分析Session和Token

04.Token

当然,随着用户数量的增加,存储在服务器中的Sessions也在增加,给服务器带来了很大的压力。此外,如果程序部署在集群或分布式模式下,同一用户第一次请求访问A服务器并创建会话,但第二次请求被发送到B服务器,但B服务器上没有以前创建的会话。这就是分布式体系结构中的会话共享问题。

为了解决这个问题,我们可以在服务器之间同步会话,或者简单地将会话保存到第三方组件,比如Redis但是不管怎样,会话成为了项目的负担。

这时服务器会想,如果Session没有和我一起保存,第一时间把用户名和密码发给我,我验证后给你一个通行证,然后客户端每次请求的时候都会带这个通行证;

这张通行证是代币。当然,验证结果需要包含客户端信息,服务器需要知道是谁发出的请求。还需要包含时间信息,因为通行证不可能永远有效;通行证不能用明文写,否则会有被拦截的风险。

HMAC-SHA1:

令牌=用户标识|到期日|HMAC(用户标识|到期日,k)AES:

令牌=AES(用户id |到期日,x)RSA:

令牌=RSA(用户标识|到期日,私钥)分析Session和Token

05.SSO 单点登录

有的公司会搭建统一的登录系统(单点登录),客户端先获取令牌,验证后再拿着这些令牌访问其他系统;API Gateway也可以提供类似的功能,我们公司就是这样。客户端访问时,首先从网关获取Token,通过身份验证后才能访问授权接口,一段时间后,必须再次更改Token。

分析Session和Token

06.Token 和 Session

对于会话和令牌,它们之间没有本质区别。两者都是加密字符串,可以进行身份验证。当然,token和session也有一些区别,比如token更容易跨域,token更好控制等。另外,在授权场景中,token比session有更大的优势;

比如我开发了一个允许微信用户登录的网站。使用令牌的过程是这样的:

登录网站时,跳转到微信登录页面;

输入用户名和密码登录微信后,给我们一个令牌;

用户可以在我们的网站上使用令牌,我们的网站不需要知道你的微信用户名和密码。

总之,在同一个网站中,token和session没有太大的区别,如果跨站点使用,token会更方便。

感谢阅读。这就是“分析会话和令牌”的内容。看完这篇文章,相信你对分析Session和Token有了更深的理解,具体用法还需要实践验证。在这里,边肖将为大家推送更多相关知识点的文章。欢迎关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/71152.html

(0)

相关推荐

  • css中下划线样式怎么设置长度

    技术css中下划线样式怎么设置长度这篇文章主要介绍“css中下划线样式怎么设置长度”,在日常操作中,相信很多人在css中下划线样式怎么设置长度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年11月30日
  • linux系统查看任务计划程序(linux查看系统中的计划任务命令)

    技术linux系统中计划任务怎么实现这篇文章主要讲解了“linux系统中计划任务怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux系统中计划任务怎么实现”吧

    攻略 2021年12月23日
  • python中如何倒序遍历列表(python数组中序遍历)

    技术怎样返回的python中序遍历这期内容当中小编将会给大家带来有关怎样返回的python中序遍历,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。【题目】给定一个二叉树,返回它的中序 遍

    攻略 2021年12月13日
  • 应接不暇是什么意思,应接不暇的应是什么意思

    技术应接不暇是什么意思,应接不暇的应是什么意思应接不暇:景物繁多,来不及观赏应接不暇是什么意思。目前多形容来人或事情太多,应付不过来。暇:空闲; 不暇:没有空闲,来不及。原形容景物繁多,目不暇接。后来形容人太多或事务繁杂

    生活 2021年10月30日
  • html中的b标签是什么意思

    技术html中的b标签是什么意思这篇文章主要介绍“html中的b标签是什么意思”,在日常操作中,相信很多人在html中的b标签是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”htm

    攻略 2021年11月17日
  • 怎么解析IE6,IE7浏览器兼容性问题

    技术怎么解析IE6,IE7浏览器兼容性问题这篇文章将为大家详细讲解有关怎么解析IE6,IE7浏览器兼容性问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。向大家描述一下I

    攻略 2021年11月25日