当前位置:首页 > 服务端 > Cookie、session和token的区别

Cookie、session和token的区别

2022年08月06日 11:29:22服务端4

Cookie的内容是保存一小段文本信息,这些文本信息组成一份通行证。它是客户端对于无状态协议的一种解决方案。

Cookie的原理

(1)客户端第一次请求时,发送数据到服务器。

(2)服务器返回响应信息的同时,还会传回一个cookie(cookie S-001)

(3)客户端接收服务器的响应之后,浏览器会将cookie存放在一个统一的位置。

(4)客户端再次向服务器发送请求的时候,会把Cookie S-001再次发挥服务器。

Cookie、session和token的区别 _ JavaClub全栈架构师技术笔记

cookie的生命周期

cookoe的生存时间是整个会话期间:浏览器会将cookie保存在内存中,浏览器关闭时自动删除这个cookie

cookie的生存时间是长久有效的:手动将cookie报存在客户端的硬盘中,浏览器关闭的话,cookie页不会清除;下次在打开浏览器访问对应网站内容,这个cookie就会自动再次发送到服务器。

session的原理:

(1)服务器在处理客户端请求过程中会创建session,并且为该session生存唯一的session ID。(这个session ID在随后的请求中会被用来重新获得已经创建的session。在session被创建后,就可以调用session相关的方法向session中新增内容,这些内容只会保存在服务器中) 

(2)服务器将session ID发送到客户端

(3)当客户端再次请求时,就会带上这个session ID

(4)服务器接收到请求之后就会一句Session ID 找到相应的Session ,完成请求

ps:1、虽然session保存在服务器,但它还是需要客户端浏览器的支持,因为session需要使用cookie作为识别标志。服务器会向客户端发送一个名为JSEDDIONID的cookie,它的值为session ID。

        2、当cookie被禁用时,可以使用url重写的方法:将session写在URL中,服务器在进行解析

Cookie、session和token的区别 _ JavaClub全栈架构师技术笔记

session的生命周期:

与cookie一直,服务器也能设置session的生效时间。

cookie和session的区别

1、存储位置不同:session存储在服务器,cookie存储在客户端

2、存储容量不同:单个cookie保存数据小于等于4kb,一个站点最多保存20个cookie;session没有上限,但是由于服务器内存性能考虑,session不要存太多东西,并有删除机制

3、存取方式不同:cookie只能保存ASCII字符串;session能存取任何类型的数据

4、隐私策略不同:cookie是对客户端是可见的,可以分析存放在本地的cookie并进去cookie欺骗;session存储在服务器上,对于客户端是透明的,不存在敏感信息泄露的风险

5、服务器压力不同:session是保存在服务端,每隔用户都会产生一个session。加入并发访问的用户太多,会产生很多的session,对服务器是一个很大的负担,耗费大量内存

                                   cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,session是一个很好的选择。

6、浏览器的支持不同:session不支持新建窗口,只支持字窗口。而cookie都支持。 

                                      假设浏览器禁用cookie,session可以通过URL重写的方法实现。COOKIE就派不上用场。

Token的原理:

(1)客户端第一次请求时,发送用户信息到服务器。服务器对用户信息使用HSA256算法及密钥进行签名,再将这个签名和数据一起作为token返回给客户户端。

(2)服务端不再保存token,客户端保存token。

(3)当客户端再次发送请求时,在请求信息中将token一起发送给服务器。

(4)服务器用同样的HSA256算法和密钥,对数据再计算一次签名,和token的签名做比较

(5)如果相同,服务器就知道客户端登录过,则反之。

作者:JYong
来源链接:https://www.cnblogs.com/YongTing/p/11423854.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/18295.html

分享给朋友:

“Cookie、session和token的区别” 的相关文章

服务器端Session和客户端Session, 以及cookie的区别

Session其实分为客户端Session和服务器端Session。 当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识。SessionID是一个由24个字符组成的随机字符串。用户每次提交页面,浏览器都会把这...

cookie窃取和session劫持

cookie窃取和session劫持

【转】cookie窃取和session劫持 Updates 2014-08-17 感谢@搞前端的crosser的提醒,加入了HTTP Response Splitting的内容。 此篇文章的Presentation戳这里。 一、cook...

session、cookie与“记住我的登录状态”的功能的实现

Cookie的机制 Cookie是浏览器(User Agent)访问一些网站后,这些网站存放在客户端的一组数据,用于使网站等跟踪用户,实现用户自定义功能。 Cookie的Domain和Path属性标识了这个Cookie是哪一个网站发送给浏览器的;Cookie的Expires...

HTTP协议-Cookie和Session详解

HTTP协议-Cookie和Session详解

前言: 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的跟踪技术就是Cookie和Session。 Cookie通过在客户端记录信息确定用户身份,Session通过在服务器记录确定用户身份。 本章将系统的讲述Cookie和Sessio...

你必须知道的session与cookie

你必须知道的session与cookie

Session本质 提到Session我们能联想到的就是用户登录功能,而本身我们使用Session的基础是通过url进行访问的,也就是使用http协议进行访问的,而http协议本身是无状态的,那么问题来了服务器端是怎么验证客户端身份的? 答:服务器端和客户端验证的联系就是s...

cookie、session、token之间的关系

cookie、session、token之间的关系

 Cookie机制 由于HTTP是一种无状态协议,服务器没有办法单单从网络连接上面知道访问者的身份,为了解决这个问题,就诞生了Cookie。Cookie实际上是一小段的文本信息。Cookies是由服务器产生的。接下来我们描述一下Cookie产生的过程。浏览器第一次...

APPlication,Session和Cookie的区别

APPlication,Session和Cookie的区别

  方法 信息量大小 保存时间 应用范围 保存位置 Application 任意大小 整个应用程序的生...

Cookie、Session和Token认证

Cookie、Session和Token认证

目录 Cookie Session认证机制 Session的一些安全配置 Token认证机制 Token预防CSRF Session认证和Token认证的区别 前言:HTTP是一种无状态的协议,为了分辨链接是谁发起的,需...

cookie和session的区别,分布式环境怎么保存用户状态

1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。 2、session中保存的是对象,cookie中保存的是字符串。 3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访...

Servlet之cookie和session简介及其作用

Servlet之cookie和session简介及其作用

一、cookie和session简介 1.浏览器和服务器是多对一的关系 2.业务:登录时记录账号,后续的页面上显示此账号 3.使用如下对象存储账号都不行 request:多个请求之间共用账号,不能用request c...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。