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消失,但为了避免用户在关闭浏览器后重新打开时仍保留原会话状态,有时会选择在关闭浏览器时清除Session,这需要通过JavaScript或者其他方式实现。 总之,...
Cookie有生命周期,可以设置为临时(关闭浏览器后消失)或长期(直到设定的过期日期)。 Session,另一方面,是在服务器端存储用户会话信息的一种方式。当用户访问网站并登录成功后,服务器会创建一个Session对象,...
2. **生命周期**:Cookie的生命周期由服务器设置,可以是临时的(关闭浏览器后消失)或永久的(在设定日期前一直存在)。 3. **安全性**:由于Cookie是通过HTTP头传递的,所以如果网络中存在中间人攻击,Cookie信息...
Cookie和Session是Web开发中两种重要的用户状态管理机制,它们帮助开发者在用户浏览网页时保持用户的登录状态和其他个性化设置。 1. **Cookie机制**:Cookie是客户端存储的一种小数据片段,通常用来存储用户的一些...
session是基于访问的进程,记录了一个访问的开始到结束,当浏览器或进程关闭之后,session也就“消失”了,而cookie更多地被用于标识用户,它可以是长久的,用于用户跟踪和识别唯一用户(Unique Visi
**重新设置IE浏览器开启COOKIE功能详解** 在互联网的日常使用中,Cookie是一种至关重要的技术,它用于存储用户在浏览网站时的临时或持久性信息。这些信息可能包括登录凭据、个性化设置或购物车内容等。然而,由于...
- **生命周期**:默认情况下,Cookie的生命周期为浏览器会话,关闭浏览器后消失。也可以设置为更长的时间,此时即使关闭浏览器,下次打开时仍会读取。 - **大小限制**:每个Cookie的大小不能超过4KB,且一个域名下...
3. 用户关闭浏览器:通常,Session数据不会在浏览器关闭后立即消失,但如果浏览器完全关闭,再次打开时需要重新发送session_id,若Cookie丢失,Session也会失效。 4. 服务器重启或Session存储机制出现问题:服务器...
Session Cookie不存储在硬盘上,仅存在于内存中,关闭浏览器后就会消失。而Persistent Cookie则会被保存在硬盘上,即使关闭浏览器也能在设定的时间内保持有效。 3. **安全性**:由于Cookie可以被恶意利用,例如进行...
`setMaxAge(expiry)`方法用于设置Cookie的有效期,如果不设置,那么Cookie只在当前会话有效,关闭浏览器后就会消失。设置`setMaxAge`后,即使浏览器关闭,Cookie也会在指定时间内保留在用户的硬盘上,直到过期。`set...
默认情况下,Cookie与浏览器会话关联,关闭浏览器后消失。但可以通过`setMaxAge()`设置其生命周期,单位为秒。 **1.5 有效路径** `setPath()`方法用于设定Cookie的有效路径,只有在指定路径下的请求才会携带该...
这个购物车在用户浏览过程中会保留数据,一直到实际完成下单,用户执行清除,或者关闭浏览器为止,当然,退出登录的话购物车内容也会消失不见。 在 settings.py 文件中加入下列语句,表示要求在浏览器一关闭的时候 ...
Cookies主要分为几类:会话Cookies(Session Cookies)在用户关闭浏览器后即消失,而持久Cookies则会在用户设定的日期或时间过期前一直保存在设备上。此外,第一方Cookies是由访问的网站本身设置的,而第三方Cookies...
2. **Cookie类型**:临时Cookie(Session Cookie)在浏览器关闭后消失,而持久Cookie(Persistent Cookie)则在设定的过期日期前一直存在。 3. **Cookie作用**:Cookie主要用于身份验证、跟踪用户行为、保持会话状态...
默认情况下,如果未设置过期时间,Cookie将被视为“会话Cookie”,在用户关闭浏览器时消失。若设置了过期时间,Cookie将在指定的日期和时间后失效。开发者可以通过`setMaxAge()`(Java Servlet)或`expires`属性...
Session Cookie不存储在硬盘上,仅存在于内存中,关闭浏览器后即消失;Persistent Cookie则被保存在硬盘上,有设定的过期时间。 - Cookie通常包含键值对,如用户名、登录状态等,用于识别用户身份或记录用户偏好。 ...
如果`maxAge`为负数,Cookie只存在于当前浏览器会话中,关闭浏览器或计算机后,Cookie就会消失。 - **setMaxAge()与getMaxAge()** 通过`setMaxAge(int maxAge)`方法设置Cookie的`maxAge`,而`getMaxAge()`方法...
- **page**作用域:只在当前JSP页面中有效,一旦控制权转移到其他页面,数据就会消失。 选择正确的数据作用域是确保数据正确共享的关键。例如,如果需要在用户浏览网站的整个会话期间跟踪用户信息,应该使用session...
2)更强大的Word文档导入编辑器功能,无需特殊的服务器权限或安装客户端组件,只要拥有最基本的ASP.NET读写文件权限即可实现导入Word文档,并且还支持最新的DOCX文档格式! 3)更细致的工具栏区域划分! 4)全新的可隐藏...