HttpCachePolicy.VaryByContentEncodings 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取用于区分输出缓存的 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 标头的列表,这些标头表示要改变输出缓存的压缩方案。 缓存动态压缩的响应意味着在首次请求资源期间,压缩成本只会产生一次。
属性 VaryByContentEncodings 与 Accept-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 中引入。 有关详细信息,请参见版本和依赖关系。