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" であり、 @ OutputCache ディレクティブの 属性をVaryByContentEncodings使用して設定されます。 ページをホストしている 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 ヘッダーの一覧を返します。 動的に圧縮された応答をキャッシュすることは、リソースの最初の要求中に圧縮のコストが 1 回だけ発生することを意味します。

プロパティは VaryByContentEncodings 、要求のヘッダーと共 Accept-Encoding に使用され、動的に圧縮されるさまざまなコンテンツ エンコードに対してキャッシュされた応答を提供する方法を決定します。 Accept-Encoding ヘッダーには、クライアントが展開できるエンコードが一覧表示されます。

キャッシュをコンテンツ エンコードによって異なるに設定すると、応答はヘッダー内の値によって間接的に Accept-Encoding 変化します。 要求が処理されると、ヘッダーがチェックされ、 Accept-Encoding 最初に受け入れられるエンコードが識別され、次のいずれかのアクションを実行するために使用されます。

  • 一覧に VaryByContentEncodings 一致するエンコードが見つかり、キャッシュされた応答が存在する場合は、キャッシュされた応答が送信されます。

  • 一覧に VaryByContentEncodings 一致するエンコードが見つかったが、キャッシュされた応答が存在しない場合は、応答が生成され、キャッシュに挿入されます。

  • 一覧に VaryByContentEncodings 一致するエンコードが見つからない場合、キャッシュはエンコードされていない応答 (ID 応答とも呼ばれます) を検索します。 エンコードされていない応答が見つかった場合は、送信されます。 それ以外の場合は、エンコードされていない新しい応答が生成され、送信され、キャッシュに格納されます。

プロパティの VaryByContentEncodings 詳細については、「RFC 2616: ハイパーテキスト転送プロトコル -- HTTP/1.1」を参照してください。これは 、World Wide Web Consortium (W3C) Web サイトで入手できます。 コンテンツ エンコーディングに関する情報は、「ヘッダー フィールド定義」セクション 14 にあります。

@ OutputCache ディレクティブの VaryByContentEncodings 属性をVaryByContentEncodings使用して、 プロパティを設定できます。 Web.config ファイルの outputCacheProfile 要素にキャッシュ プロファイルを追加することもできます。

VaryByContentEncodingsは、.NET Framework バージョン 3.5 で導入されています。 詳細については、「.NET Framework のバージョンおよび依存関係」を参照してください。

適用対象

こちらもご覧ください