HttpCachePolicy.VaryByContentEncodings Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Çıkış ö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 bir 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, çıkış ö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, sıkıştırma maliyetinin kaynak için ilk istek sırasında 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 üzere bir isteğin üst bilgisi ile birlikte Accept-Encoding
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 bulunamazsa 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 World Wide Web Consortium (W3C) Web sitesinde bulunan "RFC 2616: Köprü Metni Aktarım Protokolü -- HTTP/1.1" konusuna bakın. İçerik kodlamaları hakkındaki bilgiler "Üst Bilgi Alanı Tanımları" başlıklı 14. bölümdedir.
@ OutputCache yönergesinin özniteliğini kullanarak VaryByContentEncodings
özelliğini ayarlayabilirsinizVaryByContentEncodings. 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.