http本身无状态,说白了就是不保存任何用户信息。 所以引入cookie(客户端方案)、session(服务端方案)来保存用户信息:

这些信息通常包括什么,不能包括什么呢?

: 1. 身份信息、登陆状态 2. 用户的个性配置、权限列表 3. 其他的一些通用数据(比如购物车)4 登录凭证, 权限 ?

: session不适合保存比较多的信息,防止服务端压力过大。

: 一般只存ID

: 密码不宜放进session。 private transient String password; 且分布式项目的缘故。

session相关信息:

1 失效只能是超时或者invalidate(); 关闭浏览器不会删除服务端的session,但是可能会删除cookie保存 的sessionId。

2 session实现的‘记住我’并不安全。https://coolshell.cn/articles/5353.html。 记住我相当于自动查数据库。

至于token为什么比sessionId安全,CSRF攻击的方式:被骗去点了个链接,被恶意的JS提交的等

3 一般都是用redis模拟session。

例子

当我们去医院就诊时,医院都会给就诊病人发放就医卡,卡上只有卡号,而没有其它信息。但病人每次去该医院就诊时,只要出示就医卡,医务人员便可根据卡号查询到病人的就诊信息。Session技术就好比医院发放给病人的就医卡和医院为每个病人保留病例档案的过程。当浏览器访问Web服务器时,Servlet容器就会创建一个Session对象和ID属性,其中,Session对象就相当于病历档案,ID就相当于就医卡号。当客户端后续访问服务器时,只要将标识号传递给服务器,服务器就能判断出该请求是哪个客户端发送的,从而选择与之对应的Session对象为其服务。

需要注意的是,由于客户端需要接收、记录和回送Session对象的ID,因此,通常情况下,Session是借助Cookie技术来传递ID属性的。

为了大家更好的理解Session,接下来,以网站购物为例,通过一张图来描述Session保存用户信息的原理,具体如图1所示。


在图1中,用户甲和乙都调用buyServlet将商品添加到购物车,调用payServlet进行商品结算。由于甲和乙购买商品的过程类似,在此,以用户甲为例进行详细说明。当用户甲访问购物网站时,服务器为甲创建了一个Session对象(相当于购物车)。当甲将Nokia手机添加到购物车时,Nokia手机的信息便存放到了Session对象中。同时,服务器将Session对象的ID属性以Cookie (Set-Cookie: JsessionID=111)的形式返回给甲的浏览器。当甲完成购物进行结账时,需要向服务器发送结账请求,这时,浏览器自动在请求消息头中将Cookie (Cookie: JsessionID=111)信息回送给服务器,服务器根据ID属性找到为用户甲所创建的Session对象,并将Session对象中所存放的Nokia手机信息取出进行结算。

session里保存什么信息相关推荐

  1. 保存登录信息的Cookie加密技术

    https://www.cnblogs.com/VectorZhang/p/5425283.html 保存登录信息的Cookie加密技术 所有需要账户登录的website 基本都会想到这样一个问题, ...

  2. php手机短信验证码用cookie存好还是session存好,保存登录信息的时候用session好还是cookie好?...

    其实这个问题本身不是很准确,我觉得可能对浏览器机制和http协议做更多了解,可能更好点.为什么? 首先直接回答问题,一般比较方案是从功能,安全,效率三方面看,功能上都能达到要求,那么从安全和效率两方面 ...

  3. 关于保存到session里的信息

    问题: 一个项目,在做登录功能时需要把哪些信息保存到session里,以便后面一些功能要用的时候,提高效率,或减少出错? 例子: 现在需要一个获取会员角色(免费.普通.高级会员): 是通过sessio ...

  4. c# webclient 保存会话信息_会话保持机制cookie和session

    今天总结一下cookie和session的作用 首先,cookie是一种缓存机制,session是回话机制 1.Cookie的使用过程是怎么样的? 由于 HTTP 协议是无状态协议,如果客户通过浏览器 ...

  5. webview如何自动登录保存登录信息详情

    在Linux下,Android模拟器里使用SD卡 http://www.eoeandroid.com/thread-201250-1-1.html 关于GridView布局和界面的跳转 http:// ...

  6. python 登陆淘宝_如何用 Python 自动登录淘宝并保存登录信息?

    原标题:如何用 Python 自动登录淘宝并保存登录信息? 作者 | 猪哥 责编 | 伍杏玲 前段时间时间为大家讲解了如何使用requests库模拟登录淘宝,而今天我们将对该功能进行丰富.所以我们把之 ...

  7. PHP空间出现session无法保存问题解决办法

    PHP空间出现session无法保存问题解决办法 今天突然发现,一个运行9个月的PHP万网Linux空间出现验证码无法通过,会员无法登陆,后台也无法登陆的问题,因为这几个功能一直运行很好,而且服务器也 ...

  8. 利用钥匙串,在应用里保存用户密码的方法

    想在应用里保存帐号.密码等信息的话,直接存到 plist 里显然是不负责任的,自己折腾加密既麻烦又不能保证不被反编译破解.实际上苹果 iOS 和 Mac OS X 系统自带了一套敏感信息保存方案:&q ...

  9. 以下是关于ASP.NET中保存各种信息的对象的比较,理解这些对象的原理,对制作完善的程序来说是相当有必要的(摘至互联网,并非原创--xukunping)...

    在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么?     为 ...

最新文章

  1. python3 redis_python3_redis随手学习笔记
  2. Go 类型别名与类型声明的区别
  3. 【简便解法】1079 延迟的回文数 (20分)_31行代码AC
  4. html怎么设置数据条的颜色,jQuery EasyUI 数据网格 – 条件设置行背景颜色 | 菜鸟教程...
  5. Vue3 --- 使用vue-element-admin
  6. [机器学习-原理及实现篇]线性回归-最小二乘法
  7. 为什么linux桌面很刺眼,屏幕实在太亮了,眼睛都快瞎了,真心试了各种方法无效后才来问....
  8. vue/父子组件之间的通信
  9. KDD2021 | 推荐系统中利用深度哈希方法学习类别特征表示
  10. 许久了,都体会不到恋爱的气息
  11. LINUX运维之道_摘要
  12. Django项目启动
  13. 计算机外文文献ssh,计算机外文文献及翻译(SSH).doc
  14. 世界时间经纬_世界主要城市经纬度及时区列表
  15. 21天刷题计划之2.1—禁忌雷炎(Java语言描述)
  16. Docker的安装和使用
  17. (一)淘宝首页的代码(周六一天敲出来的)html结构展示
  18. Python爬虫实例--新浪热搜榜[正则表达式]
  19. Vue keep-alive的使用
  20. 漫画脸软件哪个好?推荐这几款漫画脸软件

热门文章

  1. Libgdx粒子效果介绍与使用心得
  2. BadBoy录制脚本jmeter打开
  3. 【Tcl学习笔记】第1章 Tcl和Tk概览-hello world!
  4. 查看及更改计算机名或域,如何查看和修改计算机名、域和工作组
  5. 安卓多台手机之间屏幕同步与pc通过adb控制手机
  6. 盛元广通医院实验室设备预约管理系统
  7. office 2016输入超过4阶矩阵
  8. 电脑鸿蒙系统怎么连接无线网络,三星笔记本电脑怎么连接无线网wifi
  9. 两个Listlt;Mapgt;快速合并
  10. 自然数 素数 质数_俄罗斯娃娃素数