HttpCacheVaryByContentEncodings 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供一种类型安全的方式来设置 HttpCachePolicy 类的 VaryByContentEncodings 属性。
public ref class HttpCacheVaryByContentEncodings sealed
public sealed class HttpCacheVaryByContentEncodings
type HttpCacheVaryByContentEncodings = class
Public NotInheritable Class HttpCacheVaryByContentEncodings
- 继承
-
HttpCacheVaryByContentEncodings
示例
以下示例演示如何启用可从输出缓存中提供的动态压缩响应。 可接受的编码为“gzip”,并使用 VaryByContentEncodings
指令的属性 @ OutputCache
进行设置。 如果承载页面的 Web 服务器未启用动态压缩,则输出缓存将没有指定内容编码的缓存响应。
<%@ Page Language="C#" %>
<%@ OutputCache VaryByParam="none" Duration="10" VaryByContentEncodings="gzip" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Varying Output Cache By Content Encoding</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<%= DateTime.Now.ToString() %>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ OutputCache VaryByParam="none" Duration="10" VaryByContentEncodings="gzip" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Varying Output Cache By Content Encoding</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<%= DateTime.Now.ToString() %>
</div>
</form>
</body>
</html>
注解
该 VaryByContentEncodings 属性用于指定是否缓存动态压缩响应。 Caching动态压缩的响应意味着压缩成本仅在第一次请求资源 (或应用程序重启) 后以及缓存项过期时产生一次。
类 VaryByContentEncodings 的属性 HttpCachePolicy 标识 ASP.NET 用于唯一标识响应变体的请求标头参数(如果资源有多个缓存的响应)。 当响应依赖于一组客户端输入(如标头、参数或内容编码)时,这非常有用。
该 HttpCacheVaryByContentEncodings 类与 HTTP 缓存控制标头不直接相关。 但是,它有助于确保对客户端或代理的响应因指定的内容编码而异。 将缓存设置为因内容编码而异,使 ASP.NET 可以改变标头的 Accept-Encoding
响应。 处理请求时, Accept-Encoding
将检查标头,并识别第一个可接受的编码,并用于执行以下操作之一:
如果在列表中也找到了 VaryByContentEncodings 匹配的编码,并且存在缓存的响应,则会发送缓存的响应。
如果在列表中也找到了 VaryByContentEncodings 匹配的编码,但缓存的响应不存在,则会生成响应并将其插入到缓存中。
如果在列表中找不到 VaryByContentEncodings 匹配的编码,则缓存将搜索非编码响应,也称为标识响应。 如果找到标识响应,则会发送该响应。 否则,会在缓存中生成并存储新的非编码响应。
有关该属性的详细信息 VaryByContentEncodings ,请参阅 RFC 2616:超文本传输协议 -- 在万维网联盟 (W3C) 网站上提供的 HTTP/1.1。 有关完整详细信息,请参阅第 14 部分“标头字段定义”。
可以使用指令或将配置文件添加到outputCacheProfile
Web.config文件中的元素来设置VaryByContentEncodings属性@ OutputCache
。
构造函数
HttpCacheVaryByContentEncodings() |
初始化 HttpCacheVaryByContentEncodings 类的新实例。 |
属性
Item[String] |
获取或设置一个值,该值指示缓存是否随指定的内容编码而变化。 |
方法
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetContentEncodings() |
获取一个值的数组,这些值指定用于改变缓存的内容编码。 |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
SetContentEncodings(String[]) |
设置值的数组,这些值指定用于改变缓存的内容编码。 |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |