session的相关特质

上一篇 / 下一篇  2010-08-09 18:05:17

Session对象用来保存与特定用户相关的信息,它是HttpSessionState 类的实例。Session中的数据保存在服务器端,在客户端需要的时候创建Session,在客户端不需要的时候销毁Session,使它不再占用服务器内存。前面说了服务器并不管客户端是否依然存在,因而它也无法确定客户端什么时间不再使用它,但是如果在客户端不再用的时候不及时销毁Session的话,服务器很快就会内存不足。为了解决这个问题,给Session加了一个生命周期,当服务器发现Session超过了它的生命周期,就会释放该Session所占用的内存空间。在ASP.NET中Session的默认生命周期是20分钟,也就是当我们在9:00的时候设置了一个Session,如果在9:20之前客户端没有任何请求,那么它的生命周期就到9:20分钟结束。但是一旦用户在9:19又向服务器发送了一个请求,那么这个Session现在的生命周期就是在当前时间的基础上再加上20分钟,也就是此时这个Session的生命周期是到9:39结束。
前面提到Session是用来保持特定用户相关的信息,那么Session是如何与特定用户相关联的呢?它是通过SessionID来区分不同用户的,并且在一个有限时间窗口内来自同一浏览器的请求标识为一个会话,也就是它们的SessionID是相同的,如果客户端启用了Cookie的话那么客户端与服务器之间通过Cookie来传递SessionID的值,如果客户端没有启用Cookie的话就会通过URL来传递SessionID的值。
Session对象有以下常用属性:
属性名 值类型 说明
Count int 获取Session中存储的对象的个数
IsCookieless bool 指示SessionID是嵌入在URL中还是存储在 Cookie 中
Mode SessionStateMode 设置Session的数据以何种方式存储
SessionID string 用于获取Session在服务器上的唯一标识
Timeout int 用于设置或者获取Session的超期时间,单位为分钟
Session具有以下特点:
(1)Session中的数据保存在服务器端;
(2)Session中可以保存任意类型的数据;
(2)Session默认的生命周期是20分钟,可以手动设置更长或更短的时间。
至于设置可以用代码设置或者在Web.config中配置,不过不建议将Session的超时时间设置过长,因为默认情况下Session在内存中保存,设置时间过长保存的数据过大的话会导致内存不足。

TAG:

 

评分:0

我来说两句

日历

« 2024-05-01  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 22200
  • 日志数: 36
  • 文件数: 1
  • 建立时间: 2010-05-19
  • 更新时间: 2012-10-30

RSS订阅

Open Toolbar