HttpCachePolicy.VaryByContentEncodings 属性

定义

获取用于区分输出缓存的 Content-Encoding 标头列表。

public:
 property System::Web::HttpCacheVaryByContentEncodings ^ VaryByContentEncodings { System::Web::HttpCacheVaryByContentEncodings ^ get(); };
public System.Web.HttpCacheVaryByContentEncodings VaryByContentEncodings { get; }
member this.VaryByContentEncodings : System.Web.HttpCacheVaryByContentEncodings
Public ReadOnly Property VaryByContentEncodings As HttpCacheVaryByContentEncodings

属性值

指定将用于选择缓存的响应的 Content-Encoding 标头对象。

示例

以下示例演示如何为要从输出缓存提供的页面启用动态压缩响应。 可接受的编码为“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 返回 Content-Encoding 标头的列表,这些标头表示要改变输出缓存的压缩方案。 缓存动态压缩的响应意味着在首次请求资源期间,压缩成本只会产生一次。

属性 VaryByContentEncodingsAccept-Encoding 请求的 标头一起使用,以确定如何为动态压缩的不同内容编码提供缓存响应。 Accept-Encoding 标头列出了客户端可以解压缩的编码。

将缓存设置为因内容编码而异时,它允许响应间接地因标头中的 Accept-Encoding 值而变化。 处理请求时, Accept-Encoding 将检查 标头,并标识第一个可接受的编码,并用于执行以下操作之一:

  • 如果在列表中找到匹配的 VaryByContentEncodings 编码,并且存在缓存的响应,则会发送缓存的响应。

  • 如果在列表中找到匹配的 VaryByContentEncodings 编码,但缓存的响应不存在,则会生成响应并将其插入缓存中。

  • 如果在列表中找不到匹配的 VaryByContentEncodings 编码,则会在缓存中搜索非编码响应,也称为标识响应。 如果找到非编码的响应,则会发送该响应。 否则,将生成、发送新的非编码响应并将其存储在缓存中。

有关 属性的详细信息 VaryByContentEncodings ,请参阅万 维网联合会 (W3C) 网站上提供的“RFC 2616:超文本传输协议 -- HTTP/1.1”。 有关内容编码的信息,请参阅第 14 节“标头字段定义”。

可以使用 @ OutputCache 指令的 属性来设置 VaryByContentEncodings 属性VaryByContentEncodings。 还可以将缓存配置文件添加到 Web.config 文件中的 outputCacheProfile 元素。

VaryByContentEncodings 在 .NET Framework 版本 3.5 中引入。 有关详细信息,请参见版本和依赖关系

适用于

另请参阅