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é

HttpCacheVaryByContentEncodings

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 une réponse compressée dynamiquement pour qu’une page soit traitée à 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 le serveur Web qui héberge la page n’a pas de compression dynamique activée, 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 la compression n’est engagé 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 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 selon 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 se trouve dans la VaryByContentEncodings liste mais qu’une réponse mise en cache n’existe pas, une réponse est générée et insérée dans le cache.

  • Si un encodage correspondant est introuvable dans la VaryByContentEncodings liste, le cache est recherché pour obtenir une réponse non codée, également appelée réponse d’identité. Si la réponse non codée est trouvée, elle est envoyée. Sinon, une nouvelle réponse non codé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 : Hypertext Transfer Protocol -- HTTP/1.1 », disponible sur le site web W3C (World Wide Web Consortium). Les informations sur les encodages de contenu se situent dans la section 14, « Définitions de champ d’en-tête ».

Vous pouvez définir la VaryByContentEncodings propriété à l’aide 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.

VaryByContentEncodingsest introduit dans la .NET Framework version 3.5. Pour plus d’informations, consultez Versions et dépendances.

S’applique à

Voir aussi