码迷,mamicode.com
首页 > 移动开发 > 详细

session cookie application的区别

时间:2016-05-07 10:24:05      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:


方法 信息量大小 保存时间 应用范围 保存位置
Application 任意大小 整个应用程序的生命期 所有用户 服务器端
Session 小量,简单的数据

用户活动时间+一段延迟时间(一般
为20分钟)

单个用户 服务器端
Cookie 小量,简单的数据 可以根据需要设定 单个用户 客户端

1.Application对象 
    Application用于保存所有用户的公共的数据信息,如果使用Application对象,一个需要考虑的问题是任何写操作都要在Application_OnStart事件(global.asax)中完成.尽管使用Application.Lock和Applicaiton.Unlock方法来避免写操作的同步,但是它串行化了对Application对象的请求,当网站访问量大的时候会产生严重的性能瓶颈.因此最好不要用此对象保存大的数据集合

2.Session对象
    Session用于保存每个用户的专用信息.她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右).Session中的信息保存在Web服务器内容中,保存的数据量可大可小.当Session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用程序后它仍然在内存中保持一段时间,因此使用Session对象使保存用户数据的方法效率很低.对于小量的数据,使用Session对象保存还是一个不错的选择.使用Session对象保存信息的代码如下:

技术分享//存放信息
技术分享
Session["username"]="zhouhuan";
技术分享
//读取数据

技术分享
string UserName=Session["username"].ToString();

   3.Cookie对象
    Cookie用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.如果没有设置Cookie失效日期,它们仅保存到关闭浏览器程序为止.如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期.Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4096,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性.使用Cookie对象保存的代码如下:

技术分享//存放信息
技术分享
Response.Cookies["UserID"].Value="0001";
技术分享
//读取信息

技术分享
string UserID=Response.Cookies["UserID"].Value;


总结:

1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。 cookie有容量限制,而session没有太大限制。
2、session中保存的是对象,cookie中保存的是字符串。 
3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。    
4、session需要借助cookie才能正常工作。如果客户端完全禁止cookie,session将失效。

5 session在用户会话结束后就会关闭了,但cookie因为保存在客户端,可以长期保存, Session采用键值对 , 也就是说ID存放客户端 , 而值放在服务器端 , 是通过用户的ID去找服务器上对应的值 , 这种方式值放置在服务器端 ,有个时间限制 ,时间到则服务器自动释放.

Application:与一个Web应用程序相对应,该应用程序下所有的Servlet/JSP共享该Application中的信息(ServletContext)


session cookie application的区别

标签:

原文地址:http://blog.csdn.net/zhaoshi1987/article/details/51332015

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!