共用方式為


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 標頭的清單,這些標頭代表壓縮配置,以依此變更輸出快取。 快取動態壓縮的回應表示壓縮成本只會在資源的第一次要求期間產生一次。

屬性 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 版中引進。 如需詳細資訊,請參閱版本和相依性

適用於

另請參閱