HttpRequestCacheLevel Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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 |
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 |
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 |
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.