HttpCacheVaryByContentEncodings Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit un moyen de type sécurisé pour définir la VaryByContentEncodings propriété de la HttpCachePolicy classe.
public ref class HttpCacheVaryByContentEncodings sealed
public sealed class HttpCacheVaryByContentEncodings
type HttpCacheVaryByContentEncodings = class
Public NotInheritable Class HttpCacheVaryByContentEncodings
- Héritage
-
HttpCacheVaryByContentEncodings
Exemples
L’exemple suivant montre comment activer une réponse compressée dynamiquement qui peut être servie à partir du cache de sortie. L’encodage acceptable est « gzip » et est défini à l’aide de l’attribut VaryByContentEncodings de la @ OutputCache directive. 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 pour 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é est utilisée pour spécifier si les réponses compressées dynamiquement sont mises en cache. 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 (ou après le redémarrage d’une application) et lorsque l’élément de cache expire.
La VaryByContentEncodings propriété de la HttpCachePolicy classe identifie les paramètres d’en-tête de requête que ASP.NET utilise pour identifier de manière unique une variante de la réponse s’il existe plusieurs réponses mises en cache pour une ressource. Cela est utile lorsqu’une réponse dépend d’un ensemble d’entrées clientes, telles que les en-têtes, les paramètres ou les encodages de contenu.
La HttpCacheVaryByContentEncodings classe n’est pas directement liée aux en-têtes de contrôle de cache HTTP. Toutefois, il permet de s’assurer qu’une réponse à un client ou à un proxy varie selon l’encodage de contenu spécifié. La définition du cache pour qu’elle varie selon l’encodage de contenu permet ASP.NET de varier la réponse par 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 également 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 également trouvé 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 d’identité est trouvée, elle est envoyée. Sinon, une nouvelle réponse non codée est généré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, consultez la section 14, « Définitions de champ d’en-tête ».
Vous pouvez définir la propriété à l’aide de la VaryByContentEncodings@ OutputCache directive ou en ajoutant un profil à l’élément outputCacheProfile du fichier Web.config.
Constructeurs
| Nom | Description |
|---|---|
| HttpCacheVaryByContentEncodings() |
Initialise une nouvelle instance de la classe HttpCacheVaryByContentEncodings. |
Propriétés
| Nom | Description |
|---|---|
| Item[String] |
Obtient ou définit une valeur qui indique si le cache varie en fonction de l’encodage de contenu spécifié. |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetContentEncodings() |
Obtient un tableau de valeurs qui spécifient les encodages de contenu à utiliser pour varier le cache. |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| SetContentEncodings(String[]) |
Définit un tableau de valeurs qui spécifient les encodages de contenu à utiliser pour varier le cache. |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |