分析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)

相关推荐

  • 馒头和米饭哪个含糖量高,吃面包和馒头哪个升糖快

    技术馒头和米饭哪个含糖量高,吃面包和馒头哪个升糖快在相同情况下相比馒头和米饭哪个含糖量高,升糖速度:馒头>面包(白吐司)>米饭。这是为什么呢?
    在这里我就要介绍一个反应食物升糖快慢的数值叫
    GI值(血糖生成指数):指含等

    生活 2021年10月31日
  • 桂花是什么季节开的,桂花什么时候开(几点?)

    技术桂花是什么季节开的,桂花什么时候开(几点?)人们常说八月桂花香桂花是什么季节开的,这就说明了桂花是在8月-10月开放。桂花有很多的品种,因为有的品种不同,有的桂花一年四季又有开花,但是那时候花香并不浓,几乎没有香味。

    生活 2021年10月29日
  • 如何用sikuli实现微信自动抢红包

    技术如何用sikuli实现微信自动抢红包本篇文章给大家分享的是有关如何用sikuli实现微信自动抢红包,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在工作中

    攻略 2021年11月15日
  • 有草有水的寓意好的字,姓王想起一个有水有草的女孩名字

    技术有草有水的寓意好的字,姓王想起一个有水有草的女孩名字展开全部 王渃有草有水的寓意好的字, 王淓,两个字就行,以后名字都三个字的,两个字姓名吃香 PS,友情提醒,千万别采纳三个字的名字。。。。看到幼儿园,小学入学名单你

    生活 2021年10月24日
  • oneyear,oneyearago是什么意思

    技术oneyear,oneyearago是什么意思oneyearago 的中文意思是“一年前,”但三个单词不能一起连写,正确的写法应该是oneyear: one year ago. 这句短语可用在句首或句尾,在时间上通常

    生活 2021年10月21日
  • 雨加散念什么,“雨”字头下面加一个“散”念什么

    技术雨加散念什么,“雨”字头下面加一个“散”念什么霰 xiàn (形声雨加散念什么。从雨,散声。本义:雪珠) 同本义。亦称“雹” [graupel;sleet]
    夜深烟火灭,霰雪落纷纷。——白居易《秦中吟》 白色不透明

    生活 2021年10月29日