Partage via


HttpCachePolicy.VaryByContentEncodings Propriété

Définition

Obtient la liste des Content-Encoding en-têtes qui seront utilisés pour 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 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 de la VaryByContentEncodings directive @ OutputCache . Si le serveur Web qui héberge la page n’a pas de compression dynamique activée, le cache de sortie n’a 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 varier le cache de sortie par. La mise en cache des réponses compressées dynamiquement signifie que le coût de la compression n’est encouru qu’une seule fois, pendant 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 se trouve 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 n’est pas trouvé 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.

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

S’applique à

Voir aussi