到底创建了几个Session

到底创建了几个Session

大家好,又见面了,我是全栈君。

问:浏览器访问一个站点,产生一个session,接着进行以下操作:
1、在同一个浏览器新打开一个tab卡,访问同一站点,此时几个session
2、将新打开的tab卡拖拽出来,成为两个浏览器的时候,创建了几个session
3、换一个浏览器,访问同一个站点,此时几个session
4、HttpSession、HttpServletRequest.getSession()、HttpServletRequest.getSession(true)、HttpServletRequest.getSession(false)是不是同一个session?

先看产生的第一个session

访问本地的tomcat,将第一次的sessionId存如session,可以看到四个sessionId相同。

img_76582c8fded94c7fd1127fa7ead9e51e.png

新打开tab,比较两个sessionId

img_f62c395a9af0d378fce6892699512c8a.png


发现两个tab卡的sessionId也是相同的

拖拽出来之后

发现两个sessionId依然相同

img_661f0ebeb416ed63a01f3d57c7714589.png

换FF再打开

终于和之前的不一样了。

img_06d4b9fc213e03019e0bbed4eb7c9bb4.png

总结

1.对于同一个浏览器,在不清除cookie、缓存、关闭浏览器的前提下,如果没到失效时间,session都是同一个
2.拖拽出来之后,session依然是同一个
3.换一个浏览器,session改变
4.HttpSession、HttpServletRequest.getSession()、HttpServletRequest.getSession(true)、HttpServletRequest.getSession(false)获取到的是同一个session

题外话

session存在于服务端,由于http是无状态的,服务端无法区别请求由哪个客户端发送,最终还是依赖cookie,每次发送请求携带一个JSESSIONID,即服务端获取的sessionId,唯一标识一个客户端请求。

img_b777415916eb988e6c46796d427f8675.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108078.html原文链接:https://javaforall.net

(0)
上一篇 2022年3月7日 下午11:00
下一篇 2022年3月7日 下午11:00


相关推荐

  • java怎么运行_怎样启动JAVA?「建议收藏」

    java怎么运行_怎样启动JAVA?「建议收藏」展开全部在Android中启动Java程序其实有很多种方式,现总结如下一、在Android应用程序中e69da5e887aa62616964757a686964616f31333363373732发送Intent启动Android应用程序这个方式最简单,最常用。在此不在累述。关于Intent的更多内容请阅读《Intent技术简介》二、在shell控制台通过am命令发送Intent来启动Androi…

    2022年7月7日
    44
  • Druid简介「建议收藏」

    Druid简介「建议收藏」Druid是什么?Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBo

    2022年7月3日
    26
  • AdminLTE框架的基本使用

    AdminLTE框架的基本使用框架介绍:AdminLTE是一个完全响应管理模板。基于Bootstrap3,jQuery3.3.1这两个框架框架,易定制模板。适合多种屏幕分辨率,从小型移动设备到大型台式机。内置了多个页面,包括仪表盘、邮箱、日历、锁屏、登录及注册、404错误、500错误等页面。对于后台站点的模板渲染,有很大的作用。下载可以使用gitclone到本地gitclonehttp…

    2022年7月27日
    13
  • C++ void指针(void*)简介

    C++ void指针(void*)简介void 是一种特殊的指针类型 可用于存放任意对象的地址 一个 void 指针存放着一个地址 这一点和其他指针类似 在介绍 void 指针前 简单说一下 void 关键字使用规则 如果函数没有返回值 那么应声明为 void 类型 如果函数无参数 那么应声明其参数为 void 常省略 如果函数的参数或返回值可以是任意类型指针 那么应声明其类型为 void void 的字面意思是 无类型 void 则为 无类型指针 void 不能代表一个真实的变量 void 体现了一种抽象 1 任何

    2026年3月19日
    3
  • Oracle trim/ltrim/rtrim區別

    Oracle trim/ltrim/rtrim區別

    2021年8月15日
    60
  • Kimi K2新模型来了!多项测试超Claude、审美超前代,免费可用

    Kimi K2新模型来了!多项测试超Claude、审美超前代,免费可用

    2026年3月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号