HttpRequestCacheLevel Énumération
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.
Spécifie le comportement de mise en cache pour les ressources obtenues à l'aide du protocole HTTP (Hypertext Transfer Protocol).
public enum class HttpRequestCacheLevel
public enum HttpRequestCacheLevel
type HttpRequestCacheLevel =
Public Enum HttpRequestCacheLevel
- Héritage
Champs
BypassCache | 1 | Satisfait une demande en utilisant le serveur. Aucune entrée n'est prise à partir des caches, ajoutée aux caches, ni supprimée des caches entre le client et serveur. Aucune entrée n'est prise à partir des caches, ajoutée aux caches, ni supprimée des caches entre le client et serveur. Il s'agit du comportement de cache par défaut spécifié dans le fichier de configuration machine fourni avec le .NET Framework. |
CacheIfAvailable | 3 | Satisfait une demande de ressource à partir du cache si la ressource est disponible ; sinon, envoie une demande de ressource au serveur. Si l'élément demandé est disponible dans un cache quelconque entre le client et le serveur, la demande peut être satisfaite par le cache intermédiaire. |
CacheOnly | 2 | Satisfait une demande en utilisant la ressource mise en cache localement ; n'envoie pas de demande pour un élément qui n'est pas dans le cache. Lorsque ce niveau de stratégie de cache est spécifié, une exception WebException est levée si l'élément n'est pas dans le cache client. |
CacheOrNextCacheOnly | 7 | Satisfait une demande de ressource à partir du cache de l'ordinateur local ou d'un cache distant sur le réseau local. Si la demande ne peut pas être satisfaite, une exception WebException est levée. Dans le protocole de mise en cache HTTP, cette opération est effectuée à l'aide de la directive de contrôle de cache |
Default | 0 | Satisfait une demande de ressource en utilisant la copie mise en cache de la ressource ou en envoyant une demande de ressource au serveur. L'action prise est déterminée par la stratégie de cache actuelle et l'âge du contenu du cache. C'est le niveau de cache qui doit être utilisé par la plupart des applications. |
NoCacheNoStore | 6 | Ne satisfait jamais une demande en utilisant des ressources du cache et ne met pas les ressources en cache. Si la ressource est présente dans le cache local, elle est supprimée. Ce niveau de stratégie indique aux caches intermédiaires qu'ils doivent supprimer la ressource. Dans le protocole de mise en cache HTTP, cela est accompli à l'aide de la directive de contrôle de cache no-cache. |
Refresh | 8 | Satisfait une demande en utilisant un serveur ou un cache autre que le cache local. Avant que la demande puisse être satisfaite par un cache intermédiaire, celui-ci doit revalider son entrée mise en cache auprès du serveur. Dans le protocole de mise en cache HTTP, cela est accompli à l'aide de la directive de contrôle de cache max-age = 0 et de l'en-tête no-cache |
Reload | 5 | Satisfait une demande en utilisant le serveur. La réponse peut être enregistrée dans le cache. Dans le protocole de mise en cache HTTP, cela est accompli à l'aide de la directive de contrôle de cache no-cache et de l'en-tête no-cache |
Revalidate | 4 | Compare la copie de la ressource située dans le cache et celle située sur le serveur. Si la copie située sur le serveur est plus récente, elle est utilisée pour répondre à la demande et remplace la copie située dans le cache. Si la copie située dans le cache est identique à celle du serveur, la copie du cache est utilisée. Dans le protocole de mise en cache HTTP, vous pouvez accomplir cette tâche à l’aide d’une demande conditionnelle. |
Exemples
L’exemple de code suivant définit la stratégie de mise en cache du domaine d’application sur Default.
// The following method demonstrates overriding the
// caching policy for a request.
static WebResponse^ GetResponseNoCache( Uri^ uri )
{
// Set a default policy level for the "http:" and "https" schemes.
HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy( HttpRequestCacheLevel::Default );
HttpWebRequest::DefaultCachePolicy = policy;
// Create the request.
WebRequest^ request = WebRequest::Create( uri );
// Define a cache policy for this request only.
HttpRequestCachePolicy^ noCachePolicy = gcnew HttpRequestCachePolicy( HttpRequestCacheLevel::NoCacheNoStore );
request->CachePolicy = noCachePolicy;
WebResponse^ response = request->GetResponse();
Console::WriteLine( L"IsFromCache? {0}", response->IsFromCache );
return response;
}
// The following method demonstrates overriding the
// caching policy for a request.
public static WebResponse GetResponseNoCache(Uri uri)
{
// Set a default policy level for the "http:" and "https" schemes.
HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default);
HttpWebRequest.DefaultCachePolicy = policy;
// Create the request.
WebRequest request = WebRequest.Create(uri);
// Define a cache policy for this request only.
HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
request.CachePolicy = noCachePolicy;
WebResponse response = request.GetResponse();
Console.WriteLine("IsFromCache? {0}", response.IsFromCache);
return response;
}
Remarques
Cette énumération est utilisée pour définir le niveau de cache spécifié par HttpRequestCachePolicy les objets.
Cette BypassCache
valeur est le comportement de cache par défaut spécifié dans le fichier de configuration de l’ordinateur fourni avec le .NET Framework. Aucune entrée n'est prise à partir des caches, ajoutée aux caches, ni supprimée des caches entre le client et serveur.
La HttpWebRequest.DefaultCachePolicy propriété est utilisée pour obtenir ou définir la stratégie de cache par défaut pour HttpWebRequest les instances. La WebRequest.DefaultCachePolicy propriété est utilisée pour obtenir ou définir la stratégie de cache par défaut pour un WebRequest instance. La CachePolicy propriété est utilisée pour obtenir ou définir la stratégie de cache pour une requête spécifique.
Une copie d’une ressource est ajoutée au cache uniquement si le flux de réponse de la ressource est récupéré et lu jusqu’à la fin du flux. Par conséquent, une autre requête pour la même ressource peut utiliser une copie mise en cache, en fonction du niveau de stratégie de cache par défaut pour cette requête.