session靠Cookie来维持,每次给客户端一个cookie里面存放session id,然后请求的时候,服务器根据session id找到对应的session。这个cookie是在浏览器关闭的时候就实效的,自动登录的cookie需要设置成为关闭浏览器后还有效的那种。
今天晚上我做了一个晚上的试验。。证明了一个道理如果你使用的是遨游或者ie7这样的基于标签的浏览器。那么当你在一个窗口中创建 session以后,其他的所有标签都用这个session。。也就是说。如果你登陆一个网站,而网站用的是session。你用两个账号登陆,第二个账 号创建的session会将第一个覆盖掉。除非你重开始菜单中打开另一个全新的遨游或者ie7.这个新打开的窗口才是一个全新的。你这个时候在第二个遨游 或者ie7中打开网站后,你将同时拥有两个账号。
关于ie6是这个样子的。如果你打开一个网站,然后重网站的链接打开了新的ie6窗口,那么新的ie6窗口继承自上个窗口。那么他们的session是共用的。也就是说,你在继承打开的第二个窗口中重新登陆以后第一个窗口的session也会随第二个窗口改变。
在谈论session机制的时候,常常听到这样一种误解“只要关闭浏览 器,session就消失了”。其实可以想象一下会员卡的例子,除非顾客主动对店家提出销卡,否则店家绝对不会轻易删除顾客的资料。对session来说 也是一样的,除非程序通知服务器删除一个session,否则服务器会一直保留,程序一般都是在用户做log off的时候发个指令去删除session。然而浏览器从来不会主动在关闭之前通知服务器它将要关闭,因此服务器根本不会有机会知道浏览器已经关闭,之所 以会有这种错觉,是大部分session机制都使用会话cookie来保存session id,而关闭浏览器后这个session id就消失了,再次连接服务器时也就无法找到原来的session。如果服务器设置的cookie被保存到硬盘上,或者使用某种手段改写浏览器发出的 HTTP请求头,把原来的sessionid发送给服务器,则再次打开浏览器仍然能够找到原来的session。
恰恰是由于关闭浏览器不会导致session被删除,迫使服务器为seesion设置了一个失效时间,当距离客户端上一次使用session的时间超过这个失效时间时,服务器就可以认为客户端已经停止了活动,才会把session删除以节省存储空间。
附:开两个浏览器窗口访问应用程序会使用同一个session还是不同的session?
对session来说是只认id不认人,因此不同的浏览器,不同的窗口打开方式以及不同的cookie存储方式都会对这个问题的答案有影响。
相关推荐
谷歌浏览器查看session插件
uploadify jsp上传附件火狐浏览器不兼容丢失session问题,Uploadify v3.2
php利用session_start()读取浏览记录,如有些网站上的产品也会有浏览记录,输出你最近浏览过的产品
关闭页面时清空Session (ASP.net ) (已实现)
JAVA SESSION 监听器 有效监听服务器SESSION情况,当前登录用户等
如果没有sessionId就新创建session,如果有sessionId,就去redis中查看是否有此id的记录,如果没有就新建session,如果有,还是新建session,并把redis中此session的相关数据赋值给新建的session,最后保存sessionId...
正对java Web项目,同浏览器同时打开两个登录窗口(不同Tag),用不同用户登录,为避免使用同一个Session,需要使用这段代码。否则先登录的用户的Session会变成后登录用户的Session.相关系统使用权限也会变。
NET的csharp的session丢失sessionid不一样 由于本地浏览器设置或者系统设置,导致sessionid无法准确上传到服务器
session驱动类 session存入数据库 数据库存储session 用于session存入数据库
检查Session是否未关闭,使用时注意将目录替换为自己项目的目录
SESSION购物车SESSION购物车SESSION购物车SESSION购物车SESSION购物车SESSION购物车SESSION购物车
防止重复提交 之 更强大的tokenSession拦截器
对于hibernate中session周期的控制
页面session页面点击会报错,我可以配置拦截器进行拦截操作判断session是否过期。
js 销毁session,session js 销毁session,session
session 的应用对于处学ASP.NET的用户很有帮助.
使用监听器跟踪session的生命周期和session的属性,文档详细介绍了
C语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言头文件 SESSIONC语言...
spring session redis分布式session,自定义session解决分布式session不同步问题
oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解...