存储机制 cookie session jwt token

cookie
Cookie的诞生

由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的。Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用。比如判断用户是否是第一次访问网站。目前最新的规范是RFC 6265,它是一个由浏览器服务器共同协作实现的规范。

Cookie的处理分为:

服务器像客户端发送cookie

浏览器将cookie保存

之后每次http请求浏览器都会将cookie发送给服务器端

session
1. 为什么要有session的出现?
答:是由于网络中http协议造成的,因为http本身是无状态协议,这样,无法确定你的本次请求和上次请求是不是你发送的。如果要进行类似论坛登陆相关的操作,就实现不了了。

2. session生成方式?
答:浏览器第一次访问服务器,服务器会创建一个session,然后同时为该session生成一个唯一的会话的key,也就是sessionid,然后,将sessionid及对应的session分别作为key和value保存到缓存中,也可以持久化到数据库中,然后服务器再把sessionid,以cookie的形式发送给客户端。这样浏览器下次再访问时,会直接带着cookie中的sessionid。然后服务器根据sessionid找到对应的session进行匹配;
还有一种是浏览器禁用了cookie或不支持cookie,这种可以通过URL重写的方式发到服务器;

简单来讲,用户访问的时候说他自己是张三,他骗你怎么办? 那就在服务器端保存张三的信息,给他一个id,让他下次用id访问。

token
概念: 访问资源的令牌

验证流程:

把用户的用户名和密码发到后端

后端进行校验,校验成功会生成token, 把token发送给客户端

客户端自己保存token, 再次请求就要在Http协议的请求头中带着token去访问服务端,和在服务端保存的token信息进行比对校验。

特点:

客户端每次都要携带token, 客户端的内容比较多

JWT
概念: JSON WEB TOKEN 的简写。可以使用在RESTFUL接口定义, 也可以使用在普通的web

组成:

header

在header中声明一些信息

payload、

签证

验证流程:

在头部信息中声明加密算法和常量, 然后把header使用json转化为字符串

在载荷中声明用户信息,同时还有一些其他的内容;再次使用json 把载荷部分进行转化,转化为字符串

使用在header中声明的加密算法和每个项目随机生成的secret来进行加密, 把第一步分字符串和第二部分的字符串进行加密, 生成新的字符串。词字符串是独一无二的。

解密的时候,只要客户端带着JWT来发起请求,服务端就直接使用secret进行解密。

特点:

三部分组成,每一部分都进行字符串的转化

解密的时候没有使用数据库,仅仅使用的是secret进行解密。

JWT的secret千万不能泄密!!!

token和jwt区别

服务端验证客户端发来的token信息要进行数据的查询操作;JWT验证客户端发来的token 在服务端使用密钥校验就可以,不用数据库的查询。

原文地址:https://www.cnblogs.com/wy919/p/12676564.html

时间: 2024-10-27 08:02:11

存储机制 cookie session jwt token的相关文章

Cookie,Session和Token机制和区别.

1.背景介绍 由于HTTP是一种无状态协议,服务器没有办法单单从网络连接上面知道访问者的身份,为了解决这个问题,就诞生了Cookie Cookie实际上是一小段的文本信息.客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie 客户端浏览器会把Cookie保存起来.当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器.服务器检查该Cookie, 以此来辨认用户状态.服务器还可以根据需要修改Cookie的内容. 实际就是颁发

关于cookie,session和token

一.理解HTTP“无状态”的含义 我们知道,HTTP是一种无状态的协议,客户端与服务器建立连接并传输数据,数据传输完成后,连接就会关闭. 举个栗子,如果在无状态情况下访问淘宝,会出现以下场景: 1)打开淘宝的url,在这一步输入用户名和密码: 2)在首页选择一样商品,点击进去,又提示需要重新登录.因为HTTP是无状态的,虽然在第1步中已经输入了用户名和密码,但我们的客户端不会记住上一步输入的用户名和密码,而服务器也不会记住已登录的状态: 经过上述例子,我们可以把“无状态”理解为:不会对本次会话设

Cookie Session 与Token

由于HTTP是一种无状态的协议,服务器端无法知道用户与客户端交互的状态,比如如果一个用于之前已经访问过该服务器,服务器无法知道该用户是第二次访问,Session和Cookie都是用来保存用户与后端服务器的交互状态,简单来说Cookie存储在用户端,而Session存储在服务器端,这种存储方式的不同造成了二者在使用上的巨大区别 由于Cookie在客户端,每次请求的时候都要带着Cookie,如果Cookie非常大且每天的流量很大那么Cookie会占用很大带宽 Session在服务器端,但他只保存在一

傻傻分不清之 Cookie、Session、Token、JWT

傻傻分不清之 Cookie.Session.Token.JWT 什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就打卡成功) 互联网中的认证: 用户名密码登录 邮箱发送登录链接 手机号接收验证码 只要你能收到邮箱/验证码,就默认你是账号的主人 什么是授权(Authorization) 用户授予第三方应用访问该用户某些资源的权限 你在安装手机应用的时候,APP 会询问是

cookie、session和token

https://zhuanlan.zhihu.com/p/25495290?utm_source=wechat_session&utm_medium=social 一.cookie 众所周知,HTTP 是一个无状态协议,所以客户端每次发出请求时,下一次请求无法得知上一次请求所包含的状态数据,如何能把一个用户的状态数据关联起来呢? 1.首先产生了 cookie 这门技术来解决这个问题,cookie 是 http 协议的一部分,它的处理分为如下几步: 1 服务器向客户端发送 cookie. 2 通常

权限认证基础:区分Authentication,Authorization以及Cookie、Session、Token

1. 认证 (Authentication) 和授权 (Authorization)的区别是什么? 这是一个绝大多数人都会混淆的问题.首先先从读音上来认识这两个名词,很多人都会把它俩的读音搞混,所以我建议你先先去查一查这两个单词到底该怎么读,他们的具体含义是什么. 说简单点就是: 认证 (Authentication): 你是谁. 授权 (Authorization): 你有权限干什么. 稍微正式点(啰嗦点)的说法就是: Authentication(认证) 是验证您的身份的凭据(例如用户名/用

cookie、session与token

一.详述概念 1.Cookie机制 cookie的作用就是为了解决HTTP协议无状态的缺陷.cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的.cookie服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器. cookie的内容主要包括:名字.值.过期时间.路径和域. 路径与域一起构成cookie的作用范围. 若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失.这种生命期为浏览器会话期的cookie被称为会话co

cookie,session,token的定义及区别

参考了很多文章总结的. 1.cookie(储存在用户本地终端上的数据) 服务器生成,发送给浏览器,浏览器保存,下次请求同一网站再发送给服务器. 2.session(会话) a.代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的. b.cookie中存放着一个sessionID.请求时会发送这个ID. c.session因为请求(request对象)而产生. d.session是一个容器,可以存放会话过程中的任何对象. e.session的创建和使用总在服务端,而浏览器从来都没得

cookie session token 之间的区别

cookie 和session的区别 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session. 3.session会在一定时间内保存在服务器上.当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用COOKIE. 4.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie. token 和session