Odpověď Ukládání do mezipaměti middlewaru v ASP.NET Core
John Luo
Tento článek vysvětluje, jak nakonfigurovat response Ukládání do mezipaměti middleware v ASP.NET Core aplikaci. Middleware určuje, kdy je možné ukládat odpovědi do mezipaměti, ukládat odpovědi a dodá odpovědi z mezipaměti. Úvod do ukládání do mezipaměti HTTP a [ResponseCache] atributu najdete v tématu Response Ukládání do mezipaměti.
Zobrazení nebo stažení ukázkového kódu (stažení)
Konfigurace
Odpovědi Ukládání do mezipaměti middleware je implicitně k dispozici ASP.NET Core aplikacím prostřednictvím sdílené architektury.
V Startup.ConfigureServices souboru přidejte do kolekce Ukládání do mezipaměti Response (Odpověď) middleware:
public void ConfigureServices(IServiceCollection services)
{
services.AddResponseCaching();
services.AddRazorPages();
}
Nakonfigurujte aplikaci na použití middlewaru s metodou rozšíření, která UseResponseCaching přidá middleware do kanálu zpracování požadavků v Startup.Configure souboru :
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
app.UseRouting();
// UseCors must be called before UseResponseCaching
// app.UseCors("myAllowSpecificOrigins");
app.UseResponseCaching();
app.Use(async (context, next) =>
{
context.Response.GetTypedHeaders().CacheControl =
new Microsoft.Net.Http.Headers.CacheControlHeaderValue()
{
Public = true,
MaxAge = TimeSpan.FromSeconds(10)
};
context.Response.Headers[Microsoft.Net.Http.Headers.HeaderNames.Vary] =
new string[] { "Accept-Encoding" };
await next();
});
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}
Upozornění
UseCors před použitím middlewaru CORS je nutné UseResponseCaching volat.
Ukázková aplikace přidá hlavičky pro řízení ukládání do mezipaměti u následných požadavků:
- Řízení mezipaměti:Ukládá odpovědi do mezipaměti po dobu až 10 sekund.
- Různé:Nakonfiguruje middleware tak, aby obsloužil odpověď v mezipaměti pouze v případě, že hlavička Accept-Encoding následných požadavků odpovídá hlavičce původního požadavku.
// using Microsoft.AspNetCore.Http;
app.Use(async (context, next) =>
{
context.Response.GetTypedHeaders().CacheControl =
new Microsoft.Net.Http.Headers.CacheControlHeaderValue()
{
Public = true,
MaxAge = TimeSpan.FromSeconds(10)
};
context.Response.Headers[Microsoft.Net.Http.Headers.HeaderNames.Vary] =
new string[] { "Accept-Encoding" };
await next();
});
Předchozí hlavičky se do odpovědi nezapisují a přepíše se, když kontroler, akce nebo Razor stránka:
- Má atribut [ResponseCache]. To platí i v případě, že vlastnost není nastavená. Například vynechání vlastnosti VaryByHeader způsobí odebrání odpovídající hlavičky z odpovědi.
Odpověď Ukládání do mezipaměti Middleware ukládá do mezipaměti pouze odpovědi serveru, které mají za následek stavový kód 200 (OK). Všechny ostatní odpovědi, včetně chybových stránek, middleware ignoruje.
Upozornění
Odpovědi obsahující obsah pro ověřené klienty musí být označené jako neumožňované do mezipaměti, aby se zabránilo ukládání a doručování těchto odpovědí middlewarem. Podrobnosti o tom, jak middleware určuje, jestli je odpověď možné ukládat do mezipaměti, najdete v tématu Podmínky pro ukládání do mezipaměti.
Možnosti
Možnosti ukládání odpovědí do mezipaměti jsou uvedené v následující tabulce.
| Možnost | Popis |
|---|---|
| MaximumBodySize | Největší velikost textu odpovědi v bajtech, která je možné ukládat do mezipaměti. Výchozí hodnota je 64 * 1024 * 1024 (64 MB). |
| SizeLimit | Omezení velikosti middlewaru mezipaměti odpovědí v bajtech. Výchozí hodnota je 100 * 1024 * 1024 (100 MB). |
| UseCaseSensitivePaths | Určuje, jestli se odpovědi u cest rozlišují malá a velká písmena v mezipaměti. Výchozí hodnota je false. |
Následující příklad nakonfiguruje middleware pro:
- Ukládání odpovědí do mezipaměti s velikostí těla menší nebo rovnou 1 024 bajtům
- Ukládat odpovědi podle cest rozlišují malá a velká písmena. Například a
/page1se/Page1ukládají samostatně.
services.AddResponseCaching(options =>
{
options.MaximumBodySize = 1024;
options.UseCaseSensitivePaths = true;
});
VaryByQueryKeys
Při použití kontrolerů MVC nebo webového rozhraní API nebo stránkových modelů stránek určuje atribut parametry potřebné k nastavení příslušných hlaviček pro Razor [ResponseCache] ukládání odpovědí do mezipaměti. Jediný parametr [ResponseCache] atributu, který striktně vyžaduje middleware, je , který neodpovídá skutečné VaryByQueryKeys hlavičce protokolu HTTP. Další informace naleznete v tématu Ukládání odpovědí do mezipaměti v ASP.NET Core.
Pokud atribut nevyu [ResponseCache] ídáte, můžete ukládání odpovědí do mezipaměti měnit pomocí VaryByQueryKeys . Použijte přímo ResponseCachingFeature z HttpContext.Features:
var responseCachingFeature = context.HttpContext.Features.Get<IResponseCachingFeature>();
if (responseCachingFeature != null)
{
responseCachingFeature.VaryByQueryKeys = new[] { "MyKey" };
}
Použití jedné hodnoty, která se rovná * v , liší mezipaměť podle všech parametrů dotazu VaryByQueryKeys požadavku.
Hlavičky HTTP používané middlewarem response Ukládání do mezipaměti
Následující tabulka obsahuje informace o hlavičkách PROTOKOLU HTTP, které ovlivňují ukládání odpovědí do mezipaměti.
| Hlavička | Podrobnosti |
|---|---|
Authorization |
Odpověď není uložená v mezipaměti, pokud hlavička existuje. |
Cache-Control |
Middleware zvažuje ukládání odpovědí do mezipaměti označených public direktivou cache. Řízení ukládání do mezipaměti s následujícími parametry:
max-stale pro , middleware nic nesnídá.‡ proxy-revalidate má stejný účinek jako must-revalidate .Další informace najdete v dokumentu RFC 7231: Direktivy Cache-Control požadavku. |
Pragma |
Hlavička Pragma: no-cache v požadavku má stejný účinek jako Cache-Control: no-cache hlavička . Tato hlavička je přepsána relevantními direktivy v Cache-Control hlavičce, pokud je k dispozici. Zvažuje zpětnou kompatibilitu s HTTP/1.0. |
Set-Cookie |
Odpověď není uložená v mezipaměti, pokud hlavička existuje. Jakýkoli middleware v kanálu zpracování požadavků, který nastaví jednu nebo více s, zabrání middlewaru Response Ukládání do mezipaměti v ukládání odpovědi do mezipaměti (například poskytovatel cookie cookie -based TempData). |
Vary |
Hlavička Vary se používá k odlišit odpověď uloženou v mezipaměti jinou hlavičkou. Můžete například ukládat odpovědi do mezipaměti pomocí kódování zahrnutím hlavičky , která ukládá odpovědi na požadavky do mezipaměti pomocí hlaviček a Vary: Accept-Encoding Accept-Encoding: gzip Accept-Encoding: text/plain samostatně. Odpověď s hodnotou hlavičky * není nikdy uložena. |
Expires |
Odpověď, kterou tato hlavička považuje za zastaralou, se neuločí ani nenačítá, pokud ji ostatní Cache-Control hlavičky nepotlačí. |
If-None-Match |
Úplná odpověď se poskytuje z mezipaměti, pokud hodnota není a odpověď neodpovídá žádné * ETag zadané hodnotě. V opačném případě se zkrátí odpověď 304 (Neupravené). |
If-Modified-Since |
Pokud hlavička není k dispozici, z mezipaměti se předá úplná odpověď, pokud je datum odpovědi uložené v mezipaměti novější než If-None-Match zadaná hodnota. V opačném případě se předá odpověď 304 – Neupravené. |
Date |
Při obsluhu z mezipaměti Date je hlavička nastavena middlewarem, pokud nebyla poskytnuta v původní odpovědi. |
Content-Length |
Při obsluhu z mezipaměti Content-Length je hlavička nastavena middlewarem, pokud nebyla poskytnuta v původní odpovědi. |
Age |
Hlavička Age odeslaná v původní odpovědi se ignoruje. Middleware při obsluhu odpovědi uložené v mezipaměti vypočítá novou hodnotu. |
Ukládání do mezipaměti respektuje direktivy Cache-Control požadavku
Middleware respektuje pravidla specifikace HTTP 1.1 Ukládání do mezipaměti . Pravidla vyžadují mezipaměť, aby bylo ctít platnou Cache-Control hlavičku odeslanou klientem. V rámci specifikace může klient provádět požadavky s hodnotou hlavičky a vynutit, aby server pro každý požadavek no-cache vygeneroval novou odpověď. V současné době neexistuje žádná vývojářská kontrola nad tímto chováním při ukládání do mezipaměti při použití middlewaru, protože middleware dodržuje oficiální specifikaci ukládání do mezipaměti.
Pokud chcete větší kontrolu nad chováním při ukládání do mezipaměti, prozkoumejte další funkce ukládání do mezipaměti ASP.NET Core. Podívejte se na následující témata:
- Ukládání do mezipaměti v ASP.NET Core
- Distribuované ukládání do mezipaměti v ASP.NET Core
- pomocná značka značky v ASP.NET Core MVC
- Pomocná služba značek distribuované mezipaměti v ASP.NET Core
Řešení potíží
Pokud chování při ukládání do mezipaměti není podle očekávání, ověřte, že jsou odpovědi možné ukládat do mezipaměti a vyřešit je z mezipaměti. Prozkoumejte příchozí hlavičky požadavku a odchozí hlavičky odpovědi. Povolte protokolování, které vám pomůže s laděním.
Při testování a řešení potíží s chováním při ukládání do mezipaměti může prohlížeč nastavit hlavičky požadavků, které mají nežádoucí vliv na ukládání do mezipaměti. Prohlížeč může například nastavit hlavičku Cache-Control na nebo při aktualizaci no-cache max-age=0 stránky. Následující nástroje mohou explicitně nastavit hlavičky požadavků a upřednostňují se pro testování ukládání do mezipaměti:
Podmínky ukládání do mezipaměti
- Požadavek musí mít za následek odpověď serveru se stavový kódem 200 (OK).
- Metoda požadavku musí být GET nebo HEAD.
- V
Startup.Configuresystému musí Ukládání do mezipaměti middleware před middleware, který vyžaduje ukládání do mezipaměti. Další informace naleznete v tématu ASP.NET Core Jiné. - Hlavička
Authorizationnesmí být k dispozici. Cache-ControlParametry hlavičky musí být platné a odpověď musí být označená apublicnesmí být označenaprivate.- Hlavička nesmí být k dispozici, pokud hlavička není k dispozici, protože hlavička přepíše hlavičku, pokud
Pragma: no-cacheCache-Controlje kCache-ControlPragmadispozici. - Hlavička
Set-Cookienesmí být k dispozici. VaryParametry hlavičky musí být platné a nesmí se rovnat*.- Hodnota
Content-Lengthhlavičky (pokud je nastavená) musí odpovídat velikosti textu odpovědi. - IHttpSendFileFeatureSe nepoužít.
- Odpověď nesmí být zastaralá, jak je určeno hlavičkou
Expiresamax-agedirektivys-maxagemezipaměti a . - Ukládání odpovědí do vyrovnávací paměti musí být úspěšné. Velikost odpovědi musí být menší než nakonfigurovaná nebo výchozí SizeLimit . Velikost textu odpovědi musí být menší než nakonfigurovaná nebo výchozí MaximumBodySize hodnota .
- Odpověď musí být možné ukládat do mezipaměti podle specifikace RFC 7234. Například direktiva nesmí
no-storeexistovat v polích hlavičky požadavku nebo odpovědi. Podrobnosti najdete v části 3: Ukládání odpovědí do mezipamětí RFC 7234.
Poznámka
Systém proti padělkům pro generování zabezpečených tokenů, který brání útokům CSRF (Cross-Site Request Forgery), nastaví hlavičky a na , aby odpovědi nejsou uložené v Cache-Control Pragma no-cache mezipaměti. Informace o tom, jak zakázat tokeny proti padělkům pro elementy formuláře HTML, najdete v tématu Prevence útoků XSRF/CSRF (Cross-Site Request Forgery) v ASP.NET Core .
Další zdroje informací
- Spuštění aplikace v ASP.NET Core
- ASP.NET Core Jiné
- Ukládání do mezipaměti v ASP.NET Core
- Distribuované ukládání do mezipaměti v ASP.NET Core
- Zjišťovat změny pomocí tokenů změn v ASP.NET Core
- Ukládání odpovědí do mezipaměti v ASP.NET Core
- pomocná značka značky v ASP.NET Core MVC
- Pomocná služba značek distribuované mezipaměti v ASP.NET Core
Tento článek vysvětluje, jak nakonfigurovat response Ukládání do mezipaměti middleware v ASP.NET Core aplikaci. Middleware určuje, kdy je možné ukládat odpovědi do mezipaměti, ukládat odpovědi a dodá odpovědi z mezipaměti. Úvod do ukládání do mezipaměti HTTP a [ResponseCache] atributu najdete v tématu Response Ukládání do mezipaměti.
Zobrazení nebo stažení ukázkového kódu (stažení)
Konfigurace
Použijte Microsoft.AspNetCore.App balíček metapackage nebo přidejte odkaz na balíček Microsoft.AspNetCore.ResponseCaching.
V Startup.ConfigureServices souboru přidejte do kolekce Ukládání do mezipaměti Response (Odpověď) middleware:
public void ConfigureServices(IServiceCollection services)
{
services.AddResponseCaching();
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
Nakonfigurujte aplikaci na použití middlewaru s metodou rozšíření, která UseResponseCaching přidá middleware do kanálu zpracování požadavků v Startup.Configure souboru :
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
app.UseResponseCaching();
app.Use(async (context, next) =>
{
context.Response.GetTypedHeaders().CacheControl =
new Microsoft.Net.Http.Headers.CacheControlHeaderValue()
{
Public = true,
MaxAge = TimeSpan.FromSeconds(10)
};
context.Response.Headers[Microsoft.Net.Http.Headers.HeaderNames.Vary] =
new string[] { "Accept-Encoding" };
await next();
});
app.UseMvc();
}
Ukázková aplikace přidá hlavičky pro řízení ukládání do mezipaměti u následných požadavků:
- Řízení mezipaměti:Ukládá odpovědi do mezipaměti po dobu až 10 sekund.
- Různé:Nakonfiguruje middleware tak, aby obsloužil odpověď v mezipaměti pouze v případě, že hlavička Accept-Encoding následných požadavků odpovídá hlavičce původního požadavku.
// using Microsoft.AspNetCore.Http;
app.Use(async (context, next) =>
{
context.Response.GetTypedHeaders().CacheControl =
new Microsoft.Net.Http.Headers.CacheControlHeaderValue()
{
Public = true,
MaxAge = TimeSpan.FromSeconds(10)
};
context.Response.Headers[Microsoft.Net.Http.Headers.HeaderNames.Vary] =
new string[] { "Accept-Encoding" };
await next();
});
Předchozí hlavičky se do odpovědi nezapisují a přepíše se, když kontroler, akce nebo Razor stránka:
- Má atribut [ResponseCache]. To platí i v případě, že vlastnost není nastavená. Například vynechání vlastnosti VaryByHeader způsobí odebrání odpovídající hlavičky z odpovědi.
Odpověď Ukládání do mezipaměti Middleware ukládá do mezipaměti pouze odpovědi serveru, které mají za následek stavový kód 200 (OK). Všechny ostatní odpovědi, včetně chybových stránek, middleware ignoruje.
Upozornění
Odpovědi obsahující obsah pro ověřené klienty musí být označené jako neumožňované do mezipaměti, aby se zabránilo ukládání a doručování těchto odpovědí middlewarem. Podrobnosti o tom, jak middleware určuje, jestli je odpověď možné ukládat do mezipaměti, najdete v tématu Podmínky pro ukládání do mezipaměti.
Možnosti
Možnosti ukládání odpovědí do mezipaměti jsou uvedené v následující tabulce.
| Možnost | Popis |
|---|---|
| MaximumBodySize | Největší velikost textu odpovědi v bajtech, která je možné ukládat do mezipaměti. Výchozí hodnota je 64 * 1024 * 1024 (64 MB). |
| SizeLimit | Omezení velikosti middlewaru mezipaměti odpovědí v bajtech. Výchozí hodnota je 100 * 1024 * 1024 (100 MB). |
| UseCaseSensitivePaths | Určuje, jestli se odpovědi u cest rozlišují malá a velká písmena v mezipaměti. Výchozí hodnota je false. |
Následující příklad nakonfiguruje middleware pro:
- Ukládání odpovědí do mezipaměti s velikostí těla menší nebo rovnou 1 024 bajtům
- Ukládat odpovědi podle cest rozlišují malá a velká písmena. Například a
/page1se/Page1ukládají samostatně.
services.AddResponseCaching(options =>
{
options.MaximumBodySize = 1024;
options.UseCaseSensitivePaths = true;
});
VaryByQueryKeys
Při použití kontrolerů MVC nebo webového rozhraní API nebo stránkových modelů stránek určuje atribut parametry potřebné k nastavení příslušných hlaviček pro Razor [ResponseCache] ukládání odpovědí do mezipaměti. Jediný parametr [ResponseCache] atributu, který striktně vyžaduje middleware, je , který neodpovídá skutečné VaryByQueryKeys hlavičce protokolu HTTP. Další informace naleznete v tématu Ukládání odpovědí do mezipaměti v ASP.NET Core.
Pokud atribut nevyu [ResponseCache] ídáte, můžete ukládání odpovědí do mezipaměti měnit pomocí VaryByQueryKeys . Použijte přímo ResponseCachingFeature z HttpContext.Features:
var responseCachingFeature = context.HttpContext.Features.Get<IResponseCachingFeature>();
if (responseCachingFeature != null)
{
responseCachingFeature.VaryByQueryKeys = new[] { "MyKey" };
}
Použití jedné hodnoty, která se rovná * v , liší mezipaměť podle všech parametrů dotazu VaryByQueryKeys požadavku.
Hlavičky HTTP používané middlewarem response Ukládání do mezipaměti
Následující tabulka obsahuje informace o hlavičkách PROTOKOLU HTTP, které ovlivňují ukládání odpovědí do mezipaměti.
| Hlavička | Podrobnosti |
|---|---|
Authorization |
Odpověď není uložená v mezipaměti, pokud hlavička existuje. |
Cache-Control |
Middleware zvažuje ukládání odpovědí do mezipaměti označených public direktivou cache. Řízení ukládání do mezipaměti s následujícími parametry:
max-stale pro , middleware nic nesnídá.‡ proxy-revalidate má stejný účinek jako must-revalidate .Další informace najdete v dokumentu RFC 7231: Direktivy Cache-Control požadavku. |
Pragma |
Hlavička Pragma: no-cache v požadavku má stejný účinek jako Cache-Control: no-cache hlavička . Tato hlavička je přepsána relevantními direktivy v Cache-Control hlavičce, pokud je k dispozici. Zvažuje zpětnou kompatibilitu s HTTP/1.0. |
Set-Cookie |
Odpověď není uložená v mezipaměti, pokud hlavička existuje. Jakýkoli middleware v kanálu zpracování požadavků, který nastaví jednu nebo více s, zabrání middlewaru Response Ukládání do mezipaměti v ukládání odpovědi do mezipaměti (například poskytovatel cookie cookie -based TempData). |
Vary |
Hlavička Vary se používá k odlišit odpověď uloženou v mezipaměti jinou hlavičkou. Můžete například ukládat odpovědi do mezipaměti pomocí kódování zahrnutím hlavičky , která ukládá odpovědi na požadavky do mezipaměti pomocí hlaviček a Vary: Accept-Encoding Accept-Encoding: gzip Accept-Encoding: text/plain samostatně. Odpověď s hodnotou hlavičky * není nikdy uložena. |
Expires |
Odpověď, kterou tato hlavička považuje za zastaralou, se neuločí ani nenačítá, pokud ji ostatní Cache-Control hlavičky nepotlačí. |
If-None-Match |
Úplná odpověď se poskytuje z mezipaměti, pokud hodnota není a odpověď neodpovídá žádné * ETag zadané hodnotě. V opačném případě se zkrátí odpověď 304 (Neupravené). |
If-Modified-Since |
Pokud hlavička není k dispozici, z mezipaměti se předá úplná odpověď, pokud je datum odpovědi uložené v mezipaměti novější než If-None-Match zadaná hodnota. V opačném případě se předá odpověď 304 – Neupravené. |
Date |
Při obsluhu z mezipaměti Date je hlavička nastavena middlewarem, pokud nebyla poskytnuta v původní odpovědi. |
Content-Length |
Při obsluhu z mezipaměti Content-Length je hlavička nastavena middlewarem, pokud nebyla poskytnuta v původní odpovědi. |
Age |
Hlavička Age odeslaná v původní odpovědi se ignoruje. Middleware při obsluhu odpovědi uložené v mezipaměti vypočítá novou hodnotu. |
Ukládání do mezipaměti respektuje direktivy Cache-Control požadavku
Middleware respektuje pravidla specifikace HTTP 1.1 Ukládání do mezipaměti . Pravidla vyžadují mezipaměť, aby bylo ctít platnou Cache-Control hlavičku odeslanou klientem. V rámci specifikace může klient provádět požadavky s hodnotou hlavičky a vynutit, aby server pro každý požadavek no-cache vygeneroval novou odpověď. V současné době neexistuje žádná vývojářská kontrola nad tímto chováním při ukládání do mezipaměti při použití middlewaru, protože middleware dodržuje oficiální specifikaci ukládání do mezipaměti.
Pokud chcete větší kontrolu nad chováním při ukládání do mezipaměti, prozkoumejte další funkce ukládání do mezipaměti ASP.NET Core. Podívejte se na následující témata:
- Ukládání do mezipaměti v ASP.NET Core
- Distribuované ukládání do mezipaměti v ASP.NET Core
- pomocná značka značky v ASP.NET Core MVC
- Pomocná služba značek distribuované mezipaměti v ASP.NET Core
Řešení potíží
Pokud chování při ukládání do mezipaměti není podle očekávání, ověřte, že jsou odpovědi možné ukládat do mezipaměti a vyřešit je z mezipaměti. Prozkoumejte příchozí hlavičky požadavku a odchozí hlavičky odpovědi. Povolte protokolování, které vám pomůže s laděním.
Při testování a řešení potíží s chováním při ukládání do mezipaměti může prohlížeč nastavit hlavičky požadavků, které mají nežádoucí vliv na ukládání do mezipaměti. Prohlížeč může například nastavit hlavičku Cache-Control na nebo při aktualizaci no-cache max-age=0 stránky. Následující nástroje mohou explicitně nastavit hlavičky požadavků a upřednostňují se pro testování ukládání do mezipaměti:
Podmínky ukládání do mezipaměti
- Požadavek musí mít za následek odpověď serveru se stavový kódem 200 (OK).
- Metoda požadavku musí být GET nebo HEAD.
- V systému musí Ukládání do mezipaměti middleware umístit před
Startup.Configuremiddleware, který vyžaduje ukládání do mezipaměti. Další informace naleznete v tématu ASP.NET Core Jiné. - Hlavička
Authorizationnesmí být k dispozici. Cache-ControlParametry hlavičky musí být platné a odpověď musí být označená apublicnesmí být označenaprivate.- Hlavička nesmí být k dispozici, pokud hlavička není k dispozici, protože hlavička přepíše hlavičku, pokud
Pragma: no-cacheCache-Controlje kCache-ControlPragmadispozici. - Hlavička
Set-Cookienesmí být k dispozici. VaryParametry hlavičky musí být platné a nesmí se rovnat*.- Hodnota
Content-Lengthhlavičky (pokud je nastavená) musí odpovídat velikosti textu odpovědi. - IHttpSendFileFeatureSe nepoužít.
- Odpověď nesmí být zastaralá, jak je určeno hlavičkou
Expiresamax-agedirektivys-maxagemezipaměti a . - Ukládání odpovědí do vyrovnávací paměti musí být úspěšné. Velikost odpovědi musí být menší než nakonfigurovaná nebo výchozí SizeLimit . Velikost textu odpovědi musí být menší než nakonfigurovaná nebo výchozí MaximumBodySize hodnota .
- Odpověď musí být možné ukládat do mezipaměti podle specifikace RFC 7234. Například direktiva nesmí
no-storeexistovat v polích hlavičky požadavku nebo odpovědi. Podrobnosti najdete v části 3: Ukládání odpovědí do mezipamětí RFC 7234.
Poznámka
Systém proti padělkům pro generování zabezpečených tokenů, který brání útokům CSRF (Cross-Site Request Forgery), nastaví hlavičky a na , aby odpovědi nejsou uložené v Cache-Control Pragma no-cache mezipaměti. Informace o tom, jak zakázat tokeny proti padělkům pro elementy formuláře HTML, najdete v tématu Prevence útoků XSRF/CSRF (Cross-Site Request Forgery) v ASP.NET Core .
Další materiály
- Spuštění aplikace v ASP.NET Core
- ASP.NET Core Jiné
- Ukládání do mezipaměti v ASP.NET Core
- Distribuované ukládání do mezipaměti v ASP.NET Core
- Zjišťovat změny pomocí tokenů změn v ASP.NET Core
- Ukládání odpovědí do mezipaměti v ASP.NET Core
- pomocná značka značky v ASP.NET Core MVC
- Pomocná služba značek distribuované mezipaměti v ASP.NET Core