关于浏览器访问服务器 sessionid的东西

昨天快下班了,公司的小美女开发翟L,问了一个问题:“保存sessionid的cookie是什么时候创建的??”。

我想了半天:

知道session的用法,以及session的生命周期(第一次调用,requset.getsession(true)时创建);

也知道cookie的用法;

也知道session其实是基于cookie的;

但是“保存sessionid的cookie是什么时候创建的??”,有个现象:浏览器请求一个服务器资源,第一次请求后一般情况下,浏览器都能拿到一个保存有jsessionid的cookie,但是我们的代码里面,可并没有req.getsession()的语句,更别提搞个cookie,把sessionid存进去。


昨晚我试了下:

1.直接请求一个url,直接返回一个html页面,监控sessionid。(发现是有的)



2.直接请求一个url, 相应的方法里面有 req.getsession(false);(意思是如果有session,就返回;如果没有就返回null)

  发现:session是有的。(在我们调用 req.getsession前就有了)



目前的推测:  浏览器和服务器建立,会创建session,把sessionid保存在cookie中,返给浏览器。但是这些不需要我们程序员去实现,是服务器(tomcat等帮我们做的)。

-------------------------------------------

还是回到翟的问题:“保存sessionid的cookie是什么时候创建的??” 

答:是浏览器第一次访问服务器时创建的,可能在服务器内部是这样的:第一次访问,调用req.getsession(true), 第一次访问没有session,所以去新建一个,然后new Cookie,将 sessionid存进去。(具体的源码没有找到)

-----------

其他session和cookie的相关知识:

https://blog.csdn.net/qq_33251859/article/details/77481868

https://www.cnblogs.com/woshimrf/p/5317776.html


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值