HttpCacheVaryByContentEncodings 类

定义

提供一种类型安全的方式来设置 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 部分“标头字段定义”。

可以使用指令或将配置文件添加到outputCacheProfileWeb.config文件中的元素来设置VaryByContentEncodings属性@ OutputCache

构造函数

HttpCacheVaryByContentEncodings()

初始化 HttpCacheVaryByContentEncodings 类的新实例。

属性

Item[String]

获取或设置一个值,该值指示缓存是否随指定的内容编码而变化。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetContentEncodings()

获取一个值的数组,这些值指定用于改变缓存的内容编码。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
SetContentEncodings(String[])

设置值的数组,这些值指定用于改变缓存的内容编码。

ToString()

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅