木木的布劳格

  • 首页
  • 学无止尽
  • 愉悦生活
  • 中医
  • 软件
  • 单反摄影
  • 收藏的软件
  • About Me
木木的布劳格
记录生活点滴的静默博客
  1. 首页
  2. 学无止尽
  3. 正文

[转]Session、Cookie、Application、ViewState和Cache 这四者的区别

20 7 月, 2012 1278点热度 0人点赞 0条评论

只有明确这几个对象,才能很好的应用于Asp.Net开发,才能更好的优化与存储数据。

通过以上对比,应该明白的差不多了,下面再详细介绍每个对象的用途

viewstate

viewstate的值保存在浏览器的html代码中 , 当浏览器关闭 , 则值消失 , 即viewstate是在本页面之内各函数间进行传值的 , 至于为什么要使用这种方法 , 因为在一个事件发生之后 , 页面可能会刷新 , 如果定义全局变量会被清零 , 所以要使用 viewstate.

在页面上存储客户端的信息

所有Web服务器控制都使用ViewState在页面回发期间保存自已的信息状态,如果某个控件不需要在回发期间保存信息,最好将其ViewState属性关闭,(看一下控制的属性面板),避免不必要的资源浪费。通过设置页面的"EnableViewState=false"可以禁用整个页面的ViewState。

ViewState容器可以保存大量的数据,但是必须谨慎使用,因为过多使用会影响性能,最明显的就是网页打开速度慢

session

Session采用键值对 , 也就是说ID存放客户端 , 而值放在服务器端 , 是通过用户的ID去找服务器上对应的值 , 这种方式值放置在服务器端 ,有个时间限制 ,时间到则服务器自动释放.

存储的是客户端和服务器之间的会话

用于保存每个用户的专用信息,它的生存期是用户持续请求时间再加上一段时间(可以在web.config中设置,默认是20分钟)。

Session中的信息保存在服务器的内存中,当然你也可以设置它的保存方法(如存在SQL数据库中)。由于用户停止使用程序后它仍然在内存中保持一段时间,因此使用Session对象保存用户数据的方法效率很低。对于小量的数据。使用Session还是一个不错的选择。

cookie

Cookies则有两种方法 , 一种方法是把值保存在浏览器的变量中 , 当浏览器关闭时结束 , 另一种方法是保存在硬盘中 , 只要时间不过期 , 下次还可使用.

于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它保存非敏感性的内容

如果将Cookie设置为Min Value,则表示它永不过期。

Cookie存储量受到很大限制,一般浏览器支持最大容量为4096字节。因此不能用来存储大量数据。

由于并非所有浏览器都支持Cookie,并且它是以明文方式保存的,所以最好不要保存敏感性的内容。否则会影响网络安全。

Application

用于保存所有用户共用的数据信息,如果被保存的数据在应用程序生存期内根本不会改变或很少改变,用它。但是在asp.net中有个web.config,可能更好点。

如果要使用application,一个需要考虑的问题是任何写操作都有要在application_onstart事件中(Global.asax)中完成。

尽管使用application.lock和application.unlock方法来避免操作的同步,但是它串行化了对application的请求,当网站访问量大时会造成性能瓶颈。

因此最好不要用它存取大的数据集。

Cache

用于在Http请求间保存页面和数据。它允许将频繁访问的大量服务器资源存储在内存中,当用户发出相同的请求时服务器不再次处理而是将Cache中保存的信息返回给用户,节省了服务器处理请求时间。

备注: ViewState是维护页面状态的 Application是维护Web应用程序状态的,整个Web应用程序(站点/虚拟目录)只有一个 Session是维护会话状态的,每个客户有一个

参考资源:

http://topic.csdn.net/t/20041028/08/3497971.html

http://www.cnblogs.com/3stones/archive/2007/03/16/676833.html

http://zhidao.baidu.com/question/40138645

http://blog.sina.com.cn/s/blog_5d96a10d0100bikp.html

http://hi.bccn.net/space-301836-do-blog-id-14009.html

http://www.lslnet.com/linux/docs/linux-4141.htm

http://www.360doc.com/content/09/0403/17/32573_3011834.shtml

来源:http://www.cnblogs.com/Fengger/archive/2012/07/19/2600075.html

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: .net Application Cache Cookie Session ViewState
最后更新:19 6 月, 2017

chat

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
标签聚合
win10 激活 wm 序列号 CENTOS PHP python c#
广告
分类
  • C sharp
  • Delphi
  • Python
  • VPS
  • 中医
  • 伤寒论
  • 其他
  • 单反摄影
  • 学无止尽
  • 工作相关
  • 愉悦生活
  • 未分类
  • 软件

COPYRIGHT © 2023 木木的布劳格. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang