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í při 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
| Name | Hodnota | Description |
|---|---|---|
| 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. Akce je určena aktuálními zásadami mezipaměti a věkem obsahu v mezipaměti. Toto je úroveň mezipaměti, kterou by měla používat většina aplikací. |
| BypassCache | 1 | Splňuje požadavek pomocí serveru. Z mezipamětí se neodeberou žádné položky, přidají se do mezipamětí nebo se odeberou z mezipamětí mezi klientem a serverem. Z mezipamětí se neodeberou žádné položky, přidají se do mezipamětí nebo se odeberou z mezipamětí mezi klientem a serverem. Toto je výchozí chování mezipaměti zadané v konfiguračním souboru počítače, který je dodáván s rozhraním .NET Framework. |
| CacheOnly | 2 | Splňuje požadavek pomocí místně uloženého prostředku v mezipaměti; neodesílá požadavek na položku, která není v mezipaměti. Pokud je zadána tato úroveň zásad mezipaměti, vyvolá se výjimka, WebException pokud položka není v mezipaměti klienta. |
| 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 požadavek na 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 mezipamětí. |
| Revalidate | 4 | Porovná kopii prostředku v mezipaměti s kopií na serveru. Pokud je kopie na serveru novější, slouží k uspokojení požadavku a nahradí kopii v mezipaměti. Pokud je kopie v mezipaměti stejná jako kopie serveru, použije se kopie uložená v mezipaměti. V protokolu HTTP pro ukládání do mezipaměti se toho dosahuje pomocí podmíněného požadavku. |
| Reload | 5 | Splňuje požadavek pomocí serveru. Odpověď může být uložena v mezipaměti. V protokolu HTTP pro ukládání do mezipaměti se toho dosahuje pomocí direktivy řízení mezipaměti no-cache a hlavičky no-cache |
| NoCacheNoStore | 6 | Nikdy nesplňuje požadavek pomocí prostředků z mezipaměti a neukládá prostředky do mezipaměti. Pokud je prostředek v místní mezipaměti, odebere se. Tato úroveň zásad označuje zprostředkující mezipaměti, které by měly prostředek odebrat. V protokolu HTTP pro ukládání do mezipaměti se toho dosahuje pomocí direktivy řízení mezipaměti bez mezipaměti. |
| CacheOrNextCacheOnly | 7 | Splňuje požadavek na prostředek z mezipaměti místního počítače nebo vzdálené mezipaměti v místní síti. Pokud požadavek nelze splnit, WebException vyvolá se výjimka. V protokolu HTTP pro ukládání do mezipaměti se toho dosahuje pomocí direktivy |
| Refresh | 8 | Splňuje požadavek pomocí serveru nebo jiné mezipaměti než místní mezipaměti. Aby požadavek mohl být splněn prostřednictvím mezipaměti, musí tato mezipaměť znovu ověřit svá uložená data u serveru. V protokolu HTTP pro ukládání do mezipaměti se toho dosahuje pomocí direktivy max-age = 0 cache control a hlavičky no-cache |
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.
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ý je dodáván s rozhraním .NET Framework. Z mezipamětí se neodeberou žádné položky, přidají se do mezipamětí nebo se odeberou z mezipamětí mezi klientem a serverem.
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 přidá do mezipaměti pouze v případě, že se načte stream odpovědí pro prostředek a načte se na konec datového proudu. Další požadavek na stejný prostředek by tedy mohl použít kopii uloženou v mezipaměti v závislosti na výchozí úrovni zásad mezipaměti pro tento požadavek.