Aracılığıyla paylaş


HttpCachePolicy.VaryByContentEncodings Özellik

Tanım

Çıktı önbelleğini Content-Encoding değiştirmek için kullanılacak üst bilgilerin listesini alır.

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

Özellik Değeri

Önbelleğe alınan yanıtı seçmek için hangi Content-Encoding üst bilgilerin kullanılacağını belirten nesne.

Örnekler

Aşağıdaki örnekte, bir sayfanın çıkış önbelleğinden sunulmuş olması için dinamik olarak sıkıştırılmış yanıtın nasıl etkinleştirileceği gösterilmektedir. Kabul edilebilir kodlama "gzip" şeklindedir ve @ OutputCache yönergesinin özniteliği kullanılarak VaryByContentEncodings ayarlanır. Sayfayı barındıran Web sunucusunda dinamik sıkıştırma etkin değilse, çıktı önbelleğinde belirtilen içerik kodlamasını temel alan önbelleğe alınmış bir yanıt olmaz.

<%@ 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>

Açıklamalar

özelliği, VaryByContentEncodings çıktı önbelleğini değiştirmek için sıkıştırma düzenlerini temsil eden Content-Encoding üst bilgilerinin listesini döndürür. Dinamik olarak sıkıştırılmış yanıtları önbelleğe almak, kaynak için ilk istek sırasında sıkıştırma maliyetinin yalnızca bir kez tahakkuk ettirilmesi anlamına gelir.

VaryByContentEncodings özelliği, dinamik olarak sıkıştırılmış farklı içerik kodlamaları için önbelleğe alınmış yanıtların nasıl sunileceğini belirlemek için bir isteğin üst bilgisi ile Accept-Encoding birlikte kullanılır. Accept-Encoding üst bilgisi, istemcinin sıkıştırmasını kaldırabileceği kodlamaları listeler.

Önbelleği içerik kodlamasına göre değişiklik gösterecek şekilde ayarladığınızda, yanıtın üst bilgideki değere göre dolaylı olarak değişmesini Accept-Encoding sağlar. bir istek işlendiğinde, Accept-Encoding üst bilgi denetlenip kabul edilebilir ilk kodlama tanımlanır ve aşağıdaki eylemlerden birini yapmak için kullanılır:

  • Listede eşleşen bir kodlama bulunursa VaryByContentEncodings ve önbelleğe alınmış bir yanıt varsa, önbelleğe alınan yanıt gönderilir.

  • Listede eşleşen bir kodlama bulunursa VaryByContentEncodings ancak önbelleğe alınmış bir yanıt yoksa, bir yanıt oluşturulur ve önbelleğe eklenir.

  • Listede eşleşen bir kodlama bulunmazsa VaryByContentEncodings , önbellekte kodlanmamış yanıt (kimlik yanıtı olarak da adlandırılır) aranır. Kodlanmamış yanıt bulunursa gönderilir. Aksi takdirde yeni bir kodlanmamış yanıt oluşturulur, gönderilir ve önbellekte depolanır.

Özelliği hakkında VaryByContentEncodings daha fazla bilgi için bkz. World Wide Web Consortium (W3C) Web sitesinde bulunan "RFC 2616: Köprü Metni Aktarım Protokolü -- HTTP/1.1". İçerik kodlamalarıyla ilgili bilgiler 14. bölüm "Üst Bilgi Alanı Tanımları" bölümündedir.

@ OutputCache yönergesinin özniteliğini kullanarak VaryByContentEncodings özelliğini ayarlayabilirsinizVaryByContentEncodings. ayrıca Web.config dosyasındaki outputCacheProfile öğesine bir önbellek profili de ekleyebilirsiniz.

VaryByContentEncodings .NET Framework sürüm 3.5'te kullanıma sunulmuştur. Daha fazla bilgi için bkz . Sürümler ve Bağımlılıklar.

Şunlara uygulanır

Ayrıca bkz.