到底创建了几个Session

作者: 小尘哥 | 来源:发表于2017-10-27 11:46 被阅读49次

    问:浏览器访问一个站点,产生一个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相同。

    新打开tab,比较两个sessionId


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

    拖拽出来之后

    发现两个sessionId依然相同

    换FF再打开

    终于和之前的不一样了。

    总结

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

    题外话

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

    相关文章

      网友评论

        本文标题:到底创建了几个Session

        本文链接:https://www.haomeiwen.com/subject/umyrpxtx.html