【发布时间】:2011-03-14 22:52:38
【问题描述】:
会话中(缓存)和[存储]变量有什么区别???
【问题讨论】:
会话中(缓存)和[存储]变量有什么区别???
【问题讨论】:
这是两个不同的概念,目的不同(尽管它们的实现可能共享一些共同的基础设施)。
缓存的目的是通过消除请求之间冗余的服务器端处理来提高性能。缓存可以发生在数据库级别(例如,通过存储查询结果)、页面级别(通过存储完全呈现的 HTML 页面)或页面组件级别(通过存储 HTML sn-ps)。缓存也可以特定于用户和其他参数。提供股票投资组合的应用程序可能会为每个用户缓存其页面,这样一个用户就不会意外地从缓存中为另一个用户的投资组合提供服务。
会话变量的目的是为 Web 应用程序添加状态(HTTP 协议本质上是无状态的,没有其他方法可以在请求之间保存数据)。
【讨论】:
如果通过缓存您专门指的是 System.Web.Cache 类,那么它与 Session 之间的主要区别在于 Cache 对应用程序是全局的,而 Session 是特定于用户的。
【讨论】:
缓存是一个通用术语,涵盖了许多可能的实现和选项。
一个这样的实现是 IIS 中的 Session 变量,它的附加约束是特定于用户(或特定于用户会话,确切地说)。
其他实现可以是Application 变量、浏览器缓存、缓存代理服务器、位于应用服务器和数据库之间的特殊缓存软件,甚至是 CDN(内容交付网络)。
请参阅有关 cache 的维基百科文章。
【讨论】: