SessionID的正确说明
SessionID的正确说明
17. 九月 2008 00:01看这篇说明的时候,请先确认你基本会Asp.net和一些原理.
找了csdn上很多文章和网上的一些文章对SessionID的解说都没说清楚或者误导.所以特别记下这里了.
首先关于Session的原理不明白的请查阅MSDN或者Asp.net高级编程等书籍.
然后说说这个 Session.SessionID 是服务器跟客户端联系的时候,服务器给客户端的一个唯一id,而且这个SessionID是保存在客户端Cookies里面的.
那其实很简单明了了.
首先
问题1:为什么每次刷新SessionID都会变化?
因为原理里说到的只有你使用Session的时候他才作用.所以你必须要用Session["xx"]这样的任何方式使用了Session之后,他才不会每次都刷新变化.
问题2:为什么Session["xx"]过期了,Session["xx] 都 null了. SessionID在下一次的时候还是不变,只有关闭浏览器之后才变化?
这也很明白,SessionID说过是保存在客户端的Cookies里面了吧?服务器那里Session过期了是服务器的事情.服务器Session过期了不会通知你客户端的.
客户端Cookies还保存着这个Cookie,所以即使浏览器很久没动,服务器端过期了.SessionID还是一样的.要不一样除非客户端Cookies过期了.
所以要不你自己清Cookies,要不让ie的Cookies机制或者之前设定好的Cookies过期时间到期后,SessionID才会从Cookies中清除,然后下次登陆服务器的时候SessionID才会变化.
可以那么说,目前的Session(无论ASP,PHP,JSP,ASPX)是Cookies的应用(虽然还有其他方式,不过基本上不会用),只要明白了这个的话,了解Session是不难的.
浙公网安备 33010602011771号