session

session

把结果响应给浏览器的意思是:

我们把在后端存储的session信息,发送给前端页面的意思吗? 那如果我们没有发送到前端,是不是浏览器就无法接收到这个session的id值了啊 

2、当浏览器窗口关闭后或者打开新的窗口,会产生新的sessionId,那么这个流程是什么意思阿, 打开新的窗口肯定是一个新的请求啊, 怎么还能识别到之前的session信息呢 

http://img1.sycdn.imooc.com//climg/60936ace0937866a08960260.jpg


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小尤 2021-05-06 14:50:13

同学你好,1、同学这么理解是可以的,sessionId服务器自动返回给浏览器,如果并未返回到浏览器中,则是无法获取到sessionId的。

2、如果是同一个用户、同一个网站并是用一个浏览器(并未关闭浏览器,只是多个窗口)cookie并未失效,在访问时,会携带之前窗口产生的sessionId。所以在多个窗口中是可以通过cookie中的sessionId获取到session信息的。

祝学习愉快!

  • 提问者 rock221 #1

    老师,经测试:账号1登录成功后,开个窗口账号2继续登录,此时session中保存的账号信息会被覆盖阿,原理是因为账号1的session返回给浏览器了,当窗口2登录后,发把cookie发送,然后后端中getsession,在set属性,(因为set中的属性名是一致的)所以覆盖了吗?那为什么窗口2没有创建一个新的sessionID空间呢?账号信息又不一样,这应该是一个新的请求呀。 

    2021-05-07 11:51:33
  • 好帮手慕小尤 回复 提问者 rock221 #2

    同学你好,1、是的,同学理解是正确的,刚是老师理解错误。想要多个窗口使用一个cookie,需要为cookie设置过期时间。

    2、如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。也就是同学描述的情况,当使用两个窗口时,分别是两次请求,则当窗口1登陆成功时,会创建一个新的sessionid,将其存储到cookie中。而在窗口2中进行登陆,则也会创建一个sessionid,将其存储到cookie中。是会将之前session数据(窗口1)覆盖,也是不同的sessionID空间。

    祝学习愉快!

    2021-05-07 14:18:06
  • 提问者 rock221 回复 好帮手慕小尤 #3

    但是很奇怪的是测试后发现这两次sessionID创建的都是同一个id阿。

    http://img1.sycdn.imooc.com//climg/6094e27109aa7ec110760140.jpg

    http://img1.sycdn.imooc.com//climg/6094e2890949829c10640128.jpg

    2021-05-07 14:47:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

关于session
session
session问题
session

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师