Partager via


HttpCachePolicy.VaryByContentEncodings Propriété

Définition

Obtient la liste des en-têtes Content-Encoding qui seront utilisés pour faire varier le cache de sortie.

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

Valeur de propriété

Objet qui spécifie les en-têtes Content-Encoding utilisés pour sélectionner la réponse mise en cache.

Exemples

L’exemple suivant montre comment activer la gestion d’une réponse compressée dynamiquement pour une page à partir du cache de sortie. L’encodage acceptable est « gzip » et est défini à l’aide de l’attribut VaryByContentEncodings de la directive @ OutputCache . Si la compression dynamique n’est pas activée sur le serveur web hébergeant la page, le cache de sortie n’aura pas de réponse mise en cache basée sur l’encodage de contenu spécifié.

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

Remarques

La VaryByContentEncodings propriété retourne une liste d’en-têtes Content-Encoding qui représentent des schémas de compression pour faire varier le cache de sortie. La mise en cache des réponses compressées dynamiquement signifie que le coût de compression n’est encouru qu’une seule fois, lors de la première demande de la ressource.

La VaryByContentEncodings propriété est utilisée avec l’en-tête Accept-Encoding d’une requête pour déterminer comment traiter les réponses mises en cache pour différents encodages de contenu qui sont compressés dynamiquement. L’en-tête Accept-Encoding répertorie les encodages que le client peut décompresser.

Lorsque vous définissez le cache pour qu’il varie en fonction de l’encodage de contenu, la réponse varie indirectement par la valeur de l’en-tête Accept-Encoding . Lorsqu’une demande est traitée, l’en-tête Accept-Encoding est vérifié et le premier encodage acceptable est identifié et utilisé pour effectuer l’une des actions suivantes :

  • Si un encodage correspondant est trouvé dans la VaryByContentEncodings liste et qu’une réponse mise en cache existe, la réponse mise en cache est envoyée.

  • Si un encodage correspondant est trouvé dans la VaryByContentEncodings liste, mais qu’aucune réponse mise en cache n’existe, une réponse est générée et insérée dans le cache.

  • Si un encodage correspondant n’est pas trouvé dans la VaryByContentEncodings liste, le cache est recherché pour une réponse non encodée, également appelée réponse d’identité. Si la réponse non encodée est trouvée, elle est envoyée. Sinon, une nouvelle réponse non encodée est générée, envoyée et stockée dans le cache.

Pour plus d’informations sur la VaryByContentEncodings propriété, consultez « RFC 2616 : Protocole de transfert hypertexte -- HTTP/1.1 », disponible sur le site Web W3C (World Wide Web Consortium). Pour plus d’informations sur les encodages de contenu, consultez la section 14, « Définitions de champ d’en-tête ».

Vous pouvez définir la propriété à l’aide VaryByContentEncodings de l’attribut VaryByContentEncodings de la directive @ OutputCache . Vous pouvez également ajouter un profil de cache à l’élément outputCacheProfile dans le fichier Web.config.

VaryByContentEncodings est introduit dans le .NET Framework version 3.5. Pour plus d’informations, consultez Versions et dépendances.

S’applique à

Voir aussi