会话中的(缓存)和[存储]变量有什么区别?

时间:2011-01-29 18:16:41

标签: asp.net caching session

会话中的(缓存)和[存储]变量有什么区别?

3 个答案:

答案 0 :(得分:1)

缓存是一个涵盖许多可能的实现和选项的通用术语。

其中一个实现是IIS中的Session变量,其附加约束是用户特定的(或者说是特定于用户会话)。

其他实现可以是Application变量,浏览器缓存,缓存代理服务器,位于应用程序服务器和数据库之间的特殊缓存软件,甚至是CDN(内容交付网络)。

请参阅维基百科有关cache的文章。

答案 1 :(得分:1)

如果通过缓存你特意指的是System.Web.Cache类,那么这和Session之间的关键区别在于Cache对应用程序是全局的,而Session是特定于用户的。

答案 2 :(得分:1)

这是两个具有不同目的的不同概念(尽管它们的实现可能共享一些共同的基础结构)。

缓存的目的是通过消除在请求之间进行冗余服务器端处理的需要来提高性能。缓存可以在数据库级别(例如,通过存储查询结果),页面级别(通过存储完全呈现的HTML页面)或页面组件级别(通过存储HTML片段)发生。缓存也可以特定于用户和其他参数。为股票投资组合提供服务的应用程序可能会为每个用户缓存其页面,以便一个用户不会意外地从缓存中为另一个人的投资组合提供服务。

会话变量的目的是向Web应用程序添加状态(HTTP协议本质上是无状态的,并且没有其他方法可以在请求之间保持数据)。