到底创建了几个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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java 介绍

    1 Java 介绍 Java的历史 Java的历史非常有趣。 Java最初是为交互式电视而设计的,但是对于当时的数字有线电视行业来说,它是太先进的技术。 Java的历史始于绿色团队…

    2022年1月24日
    43
  • virsh命令详解_lsattr命令详解

    virsh命令详解_lsattr命令详解virshhelp分组的命令:域管理(虚拟机实例管理)DomainManagement(helpkeyword’domain’):attach-device从一个XML文件附加装置attach-disk附加磁盘设备attach-interface获得网络界面autostart自动开始一个域

    2022年8月12日
    2
  • 在Linux系统中安装pycharm详解

    在Linux系统中安装pycharm详解1 在官网下载 pycharm 安装包 1 1 进入官网 DownloadPyCh PythonIDEfor 选择 Professional 专业版 直接下载 自己可以选择 pycharm 的不同版本 1 2 进入跳转页面后 出现提示框 点 savefile 1 3 下载完成后 打开安装包下载的位置 2 安装 pycharm2 1 解压文件 2 打开终端 进入 pych

    2025年6月20日
    0
  • awakeFromNib小总结

    awakeFromNib小总结

    2021年12月31日
    47
  • lucene 7.x 分词 TokenStream的使用及源码分析

    lucene 7.x 分词 TokenStream的使用及源码分析一.使用步骤1//将一个字符串创建成token流,第一个参数fiedName,是一种标志性参数,可以写空字符串,不建议用null,因为null对于IKAnalyzer会包错2TokenStr

    2022年7月4日
    26
  • 并发框架disruptor_ringbuffer的常规用法

    并发框架disruptor_ringbuffer的常规用法Disruptor概述子主题1生产者消费组框架子主题2使用子主题11.建Event类(数据对象)2.建立一个生产数据的工厂类,EventFactory,用于生产数据;3.监听事件类(处理Event数据)4.实例化Disruptor,配置参数,绑定事件;5.建存放数据的核心RingBuffer,生产的数据放入RungBuffer。ringbuffer它…

    2022年9月11日
    0

发表回复

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

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