文章目录1、Session是在服务器上还是在tomcat上? 创建springboot项目2 .启动项目3 .启动登录界面4 .启动用户信息获取界面重新启动tomcat呼叫重新启动用户信息获取界面2、Session与Cookie的关系3、 传统Session3.1 .项目启动3.2 .浏览器测试4 .分布式Session解决方案4.1.springsessionredis 4.2.token redis 4.3.token jwt五.方案差异
一、Session存在于服务器上还是tomcat上?
案例演示流程:
创建springboot项目
2 .启动项目
3 .调用登录界面
4 .调用用户信息获取界面
重新启动tomcat调用以获取用户信息界面
创建springboot项目pom
ependencygroupidorg.spring framework.boot/groupidartifactidspring-boot-starter-web/artifact id/dependency测试用例
package com.GB LFY.distributed.session.controller; importorg.spring framework.web.bind.annotation.get mapping; importorg.spring framework.web.bind.annotation.request mapping; importorg.spring framework.web.bind.annotation.request param; importorg.spring framework.web.bind.annotation.rest controller; import javax.servlet.http.http session; @requestmapping((/user ) ) restcontrollerpublicclassusercontroller ) @getmapping )/login ) ) publicstringlogin ) @getmapping ) ) log in @ request param string password,httpsessionsession(//帐户密码正确return '登录成功'; }@getmapping(/info ) (公共字符串信息) http会话会话) { return当前注册的是“session.getattribute”(登录)
3 .调用登录界面#登录界面http://localhost :8081/user/log in 4。 用户信息获取界面#用户信息获取界面http://localhost :8081/user/info用户登录后,只要获取用户信息就能够正常地获取用户信息
5 .重新启动Tomcat调用以获取用户信息找到重新启动Tomcat调用以获取用户信息的接口。 用户信息为空
结论:表明session不能共享,继续证明如下
二、Session与Cookie的关系Cookie与Session的区别:
1.cookie数据存储在客户浏览器中,session数据存储在服务器中。 2.COOKIE不安全,其他人可以分析本地存储的COOKIE进行COOKIE诈骗
考虑到安全,应该使用session。 3.session在一定时间内保存在服务器中。 访问增加会降低服务器性能
为了降低服务器性能,必须使用COOKIE。 4 .一个cookie存储的数据不能超过4K。 许多浏览器限制在一个网站上最多存储20个cookie。 Session和cookie是分开的,Session通过与传统Session 3.1 .启动项目演示相同的程序启动880次,属性Set-Cookie存储在浏览器请求的Header中
3.2 .调用浏览器测试8081登录界面
在调用8081获取用户信息的接口上可以正常地获取用户信息
在调用8082获取用户信息的接口上,无法获取用户信息
#登录界面http://localhost :8081/user/log in http://localhost :8082/user/log in #获取用户信息的界面http://localhost 336080
四.分布式Session解决方案4.1.springsessionredis 3359 GB LFY.blog.csdn.net/article/details/113807497
4.2.token redis 3359 GB LFY.blog.csdn.net/article/details/113807504
4.3.token jwt https://GB LFY.blog.csdn.net/article/details/113807506
五.方案区分Jwt:token中的内容可以解析,但不能篡改。 因此,无法在token中保存敏感信息
例如,密码
Sr pring-session/tokenredistoken无法解析,也无法篡改
总结:关于采用什么样的方案根据需要决定就可以了。