服务器与浏览器无状态的,当浏览器想服务器请求时,第一次会得到一个 SessionID, 并记录在客户端 Cookie 里面。 当然没有开启 Cookie 时会通过 Url 等其他方式;没有使用 Session 时,这个 SessionID 也会不断变化,随便写一点东西到 Session 中就会固定下来。我的疑惑是:1、打开一个浏览器窗口,得到一个唯一的 SessionID。 -- 这个没有问题
2、同一浏览器窗口,多开一个标签(IE7、TT 等很多浏览器都有这个功能), SessionID 不变。 -- 疑惑:服务器咋知道是新开的窗口还是新开的标签呢?
3、新开一个浏览器,依然访问统一服务器 Url,SessionID 就变了。 -- 疑惑:看来服务器的确知道是新开的窗口还是新开的标签。
难道客户端浏览器还会告诉服务器,我是新开的标签还是新开的窗口吗?
2、同一浏览器窗口,多开一个标签(IE7、TT 等很多浏览器都有这个功能), SessionID 不变。 -- 疑惑:服务器咋知道是新开的窗口还是新开的标签呢?
3、新开一个浏览器,依然访问统一服务器 Url,SessionID 就变了。 -- 疑惑:看来服务器的确知道是新开的窗口还是新开的标签。
难道客户端浏览器还会告诉服务器,我是新开的标签还是新开的窗口吗?
IE中:
有效的窗品包括
1.Session对象只在建立Session对象的窗口中有效。
2.在建立Session对象的窗口中新开链接的窗口
无效的窗口包括
1.直接启动IE浏览器的窗口
2.不是在建立Session对象的窗口中新开链接的窗口NetScape中:
只要一个窗口有了某个Session对象,则全部窗口对此Session都有效在最新的ie8和google chrome中,由于每个Tab都是一个进程,因此策略又不尽相同了。