HttpRequestCacheLevel Výčet

Definice

Určuje chování ukládání do mezipaměti pro prostředky získané pomocí protokolu HTTP (Hypertext Transfer Protocol).

public enum class HttpRequestCacheLevel
public enum HttpRequestCacheLevel
type HttpRequestCacheLevel = 
Public Enum HttpRequestCacheLevel
Dědičnost
HttpRequestCacheLevel

Pole

BypassCache 1

Vyhodí požadavek pomocí serveru. Mezi klientem a serverem se z mezipamětí nepřečtou žádné položky, nepřidávají se do mezipamětí ani se z mezipamětí neodeberou. Mezi klientem a serverem se z mezipamětí nepřečtou žádné položky, nepřidávají se do mezipamětí ani se z mezipamětí neodeberou. Toto je výchozí chování mezipaměti zadané v konfiguračním souboru počítače, který se dodává s rozhraním .NET Framework.

CacheIfAvailable 3

Splňuje požadavek na prostředek z mezipaměti, pokud je prostředek k dispozici; v opačném případě odešle žádost o prostředek na server. Pokud je požadovaná položka k dispozici v jakékoli mezipaměti mezi klientem a serverem, může být požadavek splněn zprostředkující mezipamětí.

CacheOnly 2

Splňuje požadavek pomocí prostředku v místní mezipaměti; neodesílá požadavek na položku, která není v mezipaměti. Pokud je tato úroveň zásad mezipaměti zadána, dojde k výjimce WebException , pokud položka není v mezipaměti klienta.

CacheOrNextCacheOnly 7

Splňuje požadavek na prostředek buď z mezipaměti místního počítače, nebo vzdálené mezipaměti v místní síti. Pokud požadavek nelze splnit, vyvolá se WebException výjimka. V protokolu HTTP ukládání do mezipaměti se toho dosahuje pomocí direktivy only-if-cached řízení mezipaměti.

Default 0

Splňuje požadavek na prostředek buď pomocí kopie prostředku uložené v mezipaměti, nebo odesláním požadavku na prostředek na server. Přijatá akce je určená aktuálními zásadami mezipaměti a stářím obsahu v mezipaměti. Toto je úroveň mezipaměti, kterou by měla používat většina aplikací.

NoCacheNoStore 6

Nikdy nesplní požadavek pomocí prostředků z mezipaměti a neukládá prostředky do mezipaměti. Pokud se prostředek nachází v místní mezipaměti, odebere se. Tato úroveň zásad indikuje zprostředkujícím mezipamětím, že by měly prostředek odebrat. V protokolu HTTP ukládání do mezipaměti se toho dosahuje pomocí direktivy bez řízení mezipaměti.

Refresh 8

Splňuje požadavek pomocí serveru nebo jiné mezipaměti než místní mezipaměti. Aby bylo možné požadavek splnit zprostředkující mezipamětí, musí tato mezipaměť znovu ověřit svoji položku uloženou v mezipaměti se serverem. V protokolu HTTP pro ukládání do mezipaměti je toho dosaženo pomocí direktivy řízení mezipaměti max-age = 0 a hlavičky bez mezipaměti Pragma .

Reload 5

Vyhodí požadavek pomocí serveru. Odpověď může být uložena v mezipaměti. V protokolu HTTP ukládání do mezipaměti se toho dosahuje pomocí direktivy řízení mezipaměti bez mezipaměti a hlavičky no-cache Pragma .

Revalidate 4

Porovná kopii prostředku v mezipaměti s kopií na serveru. Pokud je kopie na serveru novější, použije se k uspokojení požadavku a nahradí kopii v mezipaměti. Pokud je kopie v mezipaměti stejná jako serverová kopie, použije se kopie uložená v mezipaměti. V protokolu HTTP ukládání do mezipaměti se toho dosahuje pomocí podmíněného požadavku.

Příklady

Následující příklad kódu nastaví zásady ukládání do mezipaměti domény aplikace na Výchozí.

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

Poznámky

Tento výčet slouží k nastavení úrovně mezipaměti určené HttpRequestCachePolicy objekty.

Tato BypassCache hodnota je výchozí chování mezipaměti zadané v konfiguračním souboru počítače, který se dodává s rozhraním .NET Framework. Mezi klientem a serverem se z mezipamětí nepřečtou žádné položky, nepřidávají se do mezipamětí ani se z mezipamětí neodeberou.

Vlastnost HttpWebRequest.DefaultCachePolicy slouží k získání nebo nastavení výchozích zásad mezipaměti pro HttpWebRequest instance. Vlastnost WebRequest.DefaultCachePolicy slouží k získání nebo nastavení výchozích zásad mezipaměti pro WebRequest instanci. Vlastnost CachePolicy slouží k získání nebo nastavení zásad mezipaměti pro konkrétní požadavek.

Kopie prostředku se do mezipaměti přidá jenom v případě, že se datový proud odpovědi pro prostředek načte a přečte na konec datového proudu. V závislosti na výchozí úrovni zásad mezipaměti pro tento požadavek by tedy mohl použít další požadavek na stejný prostředek kopii v mezipaměti.

Platí pro

Viz také