本文主要是介绍关于浏览器访问服务器 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
这篇关于关于浏览器访问服务器 sessionid的东西的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!