为什么我关闭浏览器后session还存在?
1个回答
展开全部
session
是一种服务器端的对象,保存在服务器中。
每个session
有一个唯一的sessionid。
session的超时也是由服务器来控制。
至于你说的关闭浏览器session就结束了,其实你看到的是表面现象。session
并不一定结束了。只是新打开的浏览器找不到原来的sessionid,从而找不到原来的session。
服务器又给他分配了一个新的session而已。
至于其中实现的原理,关键是:
第一次请求的时候,服务器告诉浏览器一个关于session的唯一性标识,
接下来每次请求的时候浏览器要将session的唯一性标识告诉服务器。当浏览器关闭的时候,这个唯一性标识就销毁了。当然服务器有其独特的算法来验证这个标识。
至于这个标识如何在浏览器和服务器之间传递,有不同的方法。一种放在http请求的http头里面,实际也是一种cookie,有的放在url上面,作为参数传递给服务器。
我的理解是这样的。
欢迎拍砖。
是一种服务器端的对象,保存在服务器中。
每个session
有一个唯一的sessionid。
session的超时也是由服务器来控制。
至于你说的关闭浏览器session就结束了,其实你看到的是表面现象。session
并不一定结束了。只是新打开的浏览器找不到原来的sessionid,从而找不到原来的session。
服务器又给他分配了一个新的session而已。
至于其中实现的原理,关键是:
第一次请求的时候,服务器告诉浏览器一个关于session的唯一性标识,
接下来每次请求的时候浏览器要将session的唯一性标识告诉服务器。当浏览器关闭的时候,这个唯一性标识就销毁了。当然服务器有其独特的算法来验证这个标识。
至于这个标识如何在浏览器和服务器之间传递,有不同的方法。一种放在http请求的http头里面,实际也是一种cookie,有的放在url上面,作为参数传递给服务器。
我的理解是这样的。
欢迎拍砖。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询