Session的简单使用

1.Session的简单介绍

Session是服务器端存储数据的一种方式,为了解决HTTP的无状态性,Session与Cookie不同的是,Cookie是存储在客户端的,而Session存储在服务器端,所以Session是一种相对比较安全的信息存储方式,同时Session的使用需要Cookie的支持,因为Session对于用户来说并不是共享的,每一个用户的Session都有系统默认的提供一个SessionID,每次用户访问站点的时候,都会将Session ID添加到响应报文头中,发送给服务器,然后由服务器根据SessionID找到具体的存储区域获取到指定的数值。此外Application也是数据存储传递的一种方式,它和Session相比最重要的一点区别就是它里面存储的数据,对于所有的访问站点的用户来说是共享的,所以,一般当需要统计站点的访问的人数的时候,可以将信心存储在Application当中。

因为Session是存储在服务器中,可能会占用服务器大量的内存,所以Session是有一个过期时间的,默认的过期时间是20分钟,可以通过设置Session的属性TimeOut设置Session的过期时间,类似于cookie的Empires属性设置过期时间,同时可以使用Web.config文件中的节点属性timeout进行设置。

2.Session的使用优劣

优点:

1.Session可以解决HTTP的无状态性,实现信息的保持和在页面中的传递,实现页面信息的共享。

2.相对于Cookie而言,Session存在于服务器端,保证数据的安全性。

3.Session是不共享的,独立的保存每一个用户的数据,对于用户来说是安全的。

4.使用简单,可以很轻松的实现对各种类型数据的存储。

缺点:

1.由于数据是存储在服务器端,所以当用户的访问量比较大的时候,占用的内存将比较大,成为瓶颈(主要针对的是InProc模式)。

2.对于StateServer和SqlServer模式来说,当数据的传递的时候,用到的类必须进行可序列化处理,因为这两种模式对于数据的存储和读取使用的是序列化和反序列化,但是序列化和反序列化是相对比较慢的,影响反应速度。

3.Session的使用

添加Session:

Session["Name"]="小明";

设置过期时间:

Session.TimeOut="10";//是以分钟为单位

除去Session:

Session["Name"]=null;//等待GC回收

使用方法去除Session:

Session.Clear();

Session.RemoveAll();

Session.Remove(“Name”);

4.Session的模式设置

1.默认的模式:InProc,这是内存模式,也就是存在于当前服务器的内存中

<System.Web> <sessionState mode="InProc" timeout="10"> </sessionState> </System.Web>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzdpdp.html