缓存策略定义用于确定是否可以使用所请求资源的缓存副本满足请求的规则。 应用程序为新鲜度指定客户端缓存要求,但有效的缓存策略由客户端缓存要求、服务器的内容过期要求和服务器的重新验证要求决定。 客户端缓存策略和服务器要求的交互始终会导致最保守的缓存策略,以帮助确保将最新内容返回到客户端应用程序。
缓存策略是基于位置的或基于时间的。 基于位置的缓存策略定义缓存项的新鲜度,具体取决于从何处获取所请求的资源。 基于时间的缓存策略使用检索资源的时间、使用资源返回的标头以及当前时间定义缓存条目的新鲜度。 大多数应用程序都可以使用默认基于时间的缓存策略,该策略实现 RFC 2616 中指定的缓存策略,该策略可在 Internet 工程工作队(IETF) 网站上使用。
下表中所述的类用于指定缓存策略。
类名 | DESCRIPTION |
---|---|
HttpRequestCachePolicy | 表示使用 HttpWebRequest 对象请求的资源的基于位置的缓存策略和基于时间的缓存策略。 |
RequestCachePolicy | 表示使用Default对象请求的资源基于位置的缓存策略或基于时间的WebRequest缓存策略。 |
HttpCacheAgeControl | 指定用于创建基于 HttpRequestCachePolicy 时间的对象的值。 |
HttpRequestCacheLevel | 指定用于创建基于位置的对象和基于 HttpRequestCachePolicy 时间的对象的值。 |
RequestCacheLevel | 指定用于创建基于位置的对象或 Default 基于 RequestCachePolicy 时间的对象的值。 |
可以为应用程序发出的所有请求或单个请求定义缓存策略。 当同时指定应用程序级缓存策略和请求级缓存策略时,将使用请求级策略。 可以通过编程方式或使用应用程序或计算机配置文件指定应用程序级缓存策略。 有关详细信息,请参阅 <requestCaching> 元素(网络设置)。
要创建缓存策略,必须通过创建RequestCachePolicy类或HttpRequestCachePolicy类的实例来创建策略对象。 若要对请求指定策略,请将请求 CachePolicy 的属性设置为策略对象。 以编程方式设置应用程序级策略时,将 DefaultCachePolicy 属性设置为策略对象。
有关演示如何创建和使用缓存策略的代码示例,请参阅 在网络应用程序中配置缓存。