Session原理浅析

什么是Sesson?

简单说就是一个会话级的cookie,外加服务器端内存中一组散列表。

当你关闭浏览器的时候,这个cookie将消失。

这个cookie不写在磁盘上,而是存在于浏览器缓存。

 

关于Session的传说

传说中,Web应用程序中的Session和Application保存服务器端,而cookie保存在客户端。

其实Session同时存在于客户端与服务器端。

开发中如果你已经写了一个Session,打开火狐浏览器,清理cookie的时候你会找到一个session_id(java开发者会看到JSESSIONID)的cookie,删除他后Session将失效。

如果你打开的是IE浏览器,清理cookie后Session依然存在,我不知道IE是怎么处理的,也许它只从磁盘里去清理。

 

Session实现原理

1、创建Session的时候,服务器将生成一个唯一的sessionid然后用它生成一个关闭浏览器就会失效的cookie。

2、然后再将一个与这个sessionid关联的数据项加入散列表。

    例如这样一段代码:Session["UserName"]=23;

    假设sessionid为123那么散列表中会追加一行

     sessionid          username

     123                  23

3、当浏览器端提交到服务器时,会通过sessionid=123去散列表中寻找属于该用户的Session信息。

posted @ 2013-12-12 14:22  十三燕  阅读(12384)  评论(0编辑  收藏  举报