HttpRequestCacheLevel Enumeration

Definition

Gibt das Cacheverhalten für Ressourcen an, die über HTTP (Hypertext Transfer Protocol) abgerufen wurden.

public enum class HttpRequestCacheLevel
public enum HttpRequestCacheLevel
type HttpRequestCacheLevel = 
Public Enum HttpRequestCacheLevel
Vererbung
HttpRequestCacheLevel

Felder

BypassCache 1

Führt eine Anforderung mithilfe des Servers aus. Zwischen Client und Server werden keine Einträge aus Caches abgerufen, zu Caches hinzugefügt oder aus Caches entfernt. Zwischen Client und Server werden keine Einträge aus Caches abgerufen, zu Caches hinzugefügt oder aus Caches entfernt. Dies ist das Standardcacheverhalten, das in der mit .NET Framework gelieferten Computerkonfigurationsdatei angegeben ist.

CacheIfAvailable 3

Führt eine Anforderung einer Ressource aus dem Cache aus, wenn die Ressource verfügbar ist, und sendet andernfalls eine Anforderung einer Ressource an den Server. Wenn das angeforderte Element in einem Cache zwischen Client und Server verfügbar ist, wird die Anforderung möglicherweise durch den Zwischencache ausgeführt.

CacheOnly 2

Führt eine Anforderung mithilfe der lokal zwischengespeicherten Ressource aus. Sendet keine Anforderung eines Elements, das sich nicht im Cache befindet. Wenn diese Cacherichtlinienebene angegeben ist und sich das Element nicht im Clientcache befindet, wird eine WebException-Ausnahme ausgelöst.

CacheOrNextCacheOnly 7

Führt eine Anforderung einer Ressource entweder aus dem Cache des lokalen Computers oder einem Remotecache im lokalen Netzwerk aus. Wenn die Anforderung nicht ausgeführt werden kann, wird eine WebException-Ausnahme ausgelöst. Im HTTP-Cacheprotokoll erfolgt dies mithilfe der only-if-cached-Cachesteuerdirektive.

Default 0

Führt eine Anforderung einer Ressource entweder mithilfe der zwischengespeicherten Kopie der Ressource oder durch Senden einer Anforderung der Ressource an den Server aus. Die ausgeführte Aktion wird durch die aktuelle Cacherichtlinie und das Alter des Inhalts im Cache bestimmt. Dies ist die Cacheebene, die von den meisten Anwendungen verwendet werden muss.

NoCacheNoStore 6

Führt eine Anforderung niemals mithilfe von Ressourcen aus dem Cache aus und zwischenspeichert keine Ressourcen. Wenn die Ressource im lokalen Cache vorhanden ist, wird sie entfernt. Diese Richtlinienebene gibt für Zwischencaches an, dass sie die Ressource entfernen sollen. Im HTTP-Cacheprotokoll erfolgt dies mithilfe der no-cache-Cachesteuerdirektive.

Refresh 8

Führt eine Anforderung mithilfe des Servers oder eines anderen Caches als dem lokalen Cache aus. Bevor die Anforderung von einem Zwischencache ausgeführt werden kann, muss dieser Cache den zwischengespeicherten Eintrag anhand des Servers neu überprüfen. Im HTTP-Cacheprotokoll erfolgt dies durch die max-age = 0-Cachesteuerdirektive und den no-cache-Pragma-Header.

Reload 5

Führt eine Anforderung mithilfe des Servers aus. Die Antwort wird möglicherweise im Cache gespeichert. Im HTTP-Cacheprotokoll erfolgt dies mithilfe der no-cache-Cachesteuerdirektive und des no-cache-Pragma-Headers.

Revalidate 4

Vergleicht die Kopie der Ressource im Cache mit der Kopie auf dem Server. Wenn die Kopie auf dem Server neuer ist, wird sie zum Erfüllen der Anforderung verwendet und ersetzt die Kopie im Cache. Wenn die Kopie im Cache mit der Serverkopie übereinstimmt, wird die zwischengespeicherte Kopie verwendet. Im HTTP-Cacheprotokoll erfolgt dies durch eine bedingte Anforderung.

Beispiele

Im folgenden Codebeispiel wird die Zwischenspeicherrichtlinie der Anwendungsdomäne auf "Standard" festgelegt.

// 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;
}

Hinweise

Diese Aufzählung wird verwendet, um die durch Objekte angegebene HttpRequestCachePolicy Cacheebene festzulegen.

Dieser BypassCache Wert ist das Standardcacheverhalten, das in der Computerkonfigurationsdatei angegeben ist, die mit dem .NET Framework ausgeliefert wird. Zwischen Client und Server werden keine Einträge aus Caches abgerufen, zu Caches hinzugefügt oder aus Caches entfernt.

Die HttpWebRequest.DefaultCachePolicy Eigenschaft wird verwendet, um die Standardcacherichtlinie für HttpWebRequest Instanzen abzurufen oder festzulegen. Die WebRequest.DefaultCachePolicy Eigenschaft wird verwendet, um die Standardcacherichtlinie für eine WebRequest Instanz abzurufen oder festzulegen. Die CachePolicy Eigenschaft wird verwendet, um die Cacherichtlinie für eine bestimmte Anforderung abzurufen oder festzulegen.

Eine Kopie einer Ressource wird nur dem Cache hinzugefügt, wenn der Antwortdatenstrom für die Ressource abgerufen und am Ende des Datenstroms gelesen wird. Eine weitere Anforderung für dieselbe Ressource könnte also je nach Standardcacherichtlinienebene für diese Anforderung eine zwischengespeicherte Kopie verwenden.

Gilt für

Siehe auch