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

相关推荐

  • 703. 数据流中的第 K 大元素

    技术703. 数据流中的第 K 大元素 703. 数据流中的第 K 大元素设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。
    请实现 KthL

    礼包 2021年12月20日
  • 分析PostgreSQL日志相关的配置参数log_XXX

    技术分析PostgreSQL日志相关的配置参数log_XXX本篇内容主要讲解“分析PostgreSQL日志相关的配置参数log_XXX”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家

    攻略 2021年11月5日
  • Python如何爬取视频网站弹幕并做成词云图

    技术Python如何爬取视频网站弹幕并做成词云图这篇文章将为大家详细讲解有关Python如何爬取视频网站弹幕并做成词云图,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。大家

    攻略 2021年10月26日
  • 箭头符号怎么打,电脑常识:往返双箭头符号怎么打

    技术箭头符号怎么打,电脑常识:往返双箭头符号怎么打输入往返双箭头符号的方法如下箭头符号怎么打: 1.打开WPS表格这款软件(其他office软件也可以),进入WPS表格的操作界面: 2.在该界面内找到,插入选项: 3.点

    生活 2021年10月26日
  • ios中tableview的优化(ios tableview置顶功能)

    技术iOS中tableView的分类有哪些这篇文章主要介绍iOS中tableView的分类有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!大致分了一下,一个uitableview需要几个方法去

    攻略 2021年12月24日
  • 香港云服务器比VPS好在哪

    技术香港云服务器比VPS好在哪香港云服务器的优势相比VPS在于资源的精确共享。这意味着您确切地知道您购买了什么,因此您可以在网站上交易多少访问者以及限制是什么。香港云服务器的特点是: 更好的CPU核心分配 为了更好的理解

    礼包 2021年12月8日