HttpRequestCacheLevel Enum

Definition

Anger cachelagringsbeteende för resurser som hämtas med hjälp av Hypertext Transfer Protocol (HTTP).

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

Fält

Name Värde Description
Default 0

Uppfyller en begäran om en resurs antingen med hjälp av den cachelagrade kopian av resursen eller genom att skicka en begäran om resursen till servern. Den åtgärd som vidtas bestäms av den aktuella cacheprincipen och innehållets ålder i cacheminnet. Det här är den cachenivå som ska användas av de flesta program.

BypassCache 1

Uppfyller en begäran med hjälp av servern. Inga poster hämtas från cacheminnen, läggs till i cacheminnen eller tas bort från cacheminnen mellan klienten och servern. Inga poster hämtas från cacheminnen, läggs till i cacheminnen eller tas bort från cacheminnen mellan klienten och servern. Det här är standardbeteendet för cachen som anges i datorkonfigurationsfilen som levereras med .NET Framework.

CacheOnly 2

Uppfyller en begäran med hjälp av den lokalt cachelagrade resursen. skickar inte någon begäran om ett objekt som inte finns i cacheminnet. När den här cacheprincipnivån har angetts utlöses ett WebException undantag om objektet inte finns i klientcachen.

CacheIfAvailable 3

Uppfyller en begäran om en resurs från cacheminnet om resursen är tillgänglig. annars skickar du en begäran om en resurs till servern. Om det begärda objektet är tillgängligt i någon cache mellan klienten och servern kan begäran uppfyllas av den mellanliggande cachen.

Revalidate 4

Jämför kopian av resursen i cacheminnet med kopian på servern. Om kopian på servern är nyare används den för att uppfylla begäran och ersätter kopian i cacheminnet. Om kopian i cacheminnet är samma som serverkopian används den cachelagrade kopian. I HTTP-cachelagringsprotokollet uppnås detta med hjälp av en villkorlig begäran.

Reload 5

Uppfyller en begäran med hjälp av servern. Svaret kan sparas i cacheminnet. I HTTP-cachelagringsprotokollet uppnås detta med hjälp av kontrolldirektivet för cachelagring utan cache och huvudet utan cache Pragma .

NoCacheNoStore 6

Uppfyller aldrig en begäran med hjälp av resurser från cacheminnet och cachelagr inte resurser. Om resursen finns i den lokala cachen tas den bort. Den här principnivån anger för mellanliggande cacheminnen att de ska ta bort resursen. I HTTP-cachelagringsprotokollet uppnås detta med hjälp av kontrolldirektivet för cachelagring utan cache.

CacheOrNextCacheOnly 7

Uppfyller en begäran om en resurs antingen från den lokala datorns cacheminne eller en fjärrcachen i det lokala nätverket. Om begäran inte kan uppfyllas utlöses ett WebException undantag. I HTTP-cachelagringsprotokollet uppnås detta med hjälp av only-if-cached cachekontrolldirektivet.

Refresh 8

Uppfyller en begäran med hjälp av servern eller en annan cache än den lokala cachen. Innan en begäran kan uppfyllas av en mellanliggande cache måste cacheminnet validera om sitt cachelagrade objekt mot servern. I HTTP-cachelagringsprotokollet uppnås detta med hjälp av direktivet max-age = 0 cachekontroll och no-cache-huvudet Pragma .

Exempel

I följande kodexempel anges programdomänens cachelagringsprincip till Standard.

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

Kommentarer

Den här uppräkningen används för att ange den cachenivå som anges av HttpRequestCachePolicy objekt.

Det här värdet BypassCache är standardbeteendet för cachen som anges i datorkonfigurationsfilen som levereras med .NET Framework. Inga poster hämtas från cacheminnen, läggs till i cacheminnen eller tas bort från cacheminnen mellan klienten och servern.

Egenskapen HttpWebRequest.DefaultCachePolicy används för att hämta eller ange standardcacheprincipen för HttpWebRequest instanser. Egenskapen WebRequest.DefaultCachePolicy används för att hämta eller ange standardcacheprincipen för en WebRequest instans. Egenskapen CachePolicy används för att hämta eller ange cacheprincipen för en specifik begäran.

En kopia av en resurs läggs bara till i cacheminnet om svarsströmmen för resursen hämtas och läss till slutet av dataströmmen. En annan begäran för samma resurs kan därför använda en cachelagrad kopia, beroende på standardnivån för cacheprincip för den här begäran.

Gäller för

Se även