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 /page1 se /Page1 uklá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-age
  • max-stale†
  • min-fresh
  • must-revalidate
  • no-cache (bez mezipaměti)
  • no-store (žádný obchod)
  • jen v případě, že je v mezipaměti
  • private
  • public
  • s-maxage
  • opětovné ověření proxy‡
†pokud není zadaný žádný limit 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:

Ř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.Configure systé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 Authorization nesmí být k dispozici.
  • Cache-Control Parametry hlavičky musí být platné a odpověď musí být označená a public nesmí být označena private .
  • 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-cache Cache-Control je k Cache-Control Pragma dispozici.
  • Hlavička Set-Cookie nesmí být k dispozici.
  • Vary Parametry hlavičky musí být platné a nesmí se rovnat * .
  • Hodnota Content-Length hlavič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 Expires a max-age direktivy s-maxage mezipamě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-store existovat 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í

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 /page1 se /Page1 uklá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-age
  • max-stale†
  • min-fresh
  • must-revalidate
  • no-cache (bez mezipaměti)
  • no-store (žádný obchod)
  • jen v případě, že je v mezipaměti
  • private
  • public
  • s-maxage
  • opětovné ověření proxy‡
†pokud není zadaný žádný limit 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:

Ř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.Configure middleware, který vyžaduje ukládání do mezipaměti. Další informace naleznete v tématu ASP.NET Core Jiné.
  • Hlavička Authorization nesmí být k dispozici.
  • Cache-Control Parametry hlavičky musí být platné a odpověď musí být označená a public nesmí být označena private .
  • 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-cache Cache-Control je k Cache-Control Pragma dispozici.
  • Hlavička Set-Cookie nesmí být k dispozici.
  • Vary Parametry hlavičky musí být platné a nesmí se rovnat * .
  • Hodnota Content-Length hlavič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 Expires a max-age direktivy s-maxage mezipamě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-store existovat 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