0Pricing
C# Academy · Lektion

Grundlagen des Output-Caching

Puffern Sie Antworten, um den Arbeitsaufwand zu verringern.

Grundlagen des Output-Caching ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist Output Caching?

Output Caching speichert die vollständige HTTP-Antwort eines Endpunkts, sodass wiederholte Anfragen aus dem Cache beantwortet werden, ohne den Handler erneut auszuführen. Das reduziert Latenz und Last bei Endpunkten mit vielen Lesezugriffen erheblich.

// First call -> handler runs, response stored
// Next calls -> response served from cache

Output Cache und Response Cache im Vergleich

Das integrierte Output Caching (seit .NET 7) speichert Antworten auf dem Server, und Sie haben vollständige Kontrolle darüber. Das ältere Response Caching gibt nur HTTP-Cache-Header aus und ist darauf angewiesen, dass der Client oder Proxys diese berücksichtigen.

// Output caching: server-side store you control
// Response caching: just Cache-Control headers

AddOutputCache

Registrieren Sie den Dienst mit AddOutputCache.

builder.Services.AddOutputCache();

UseOutputCache

Fügen Sie die Middleware mit UseOutputCache in die Pipeline ein. Platzieren Sie sie nach dem Routing und, falls vorhanden, nach CORS.

var app = builder.Build();

app.UseOutputCache();

app.MapControllers();

CacheOutput für einen Endpunkt

Aktivieren Sie das Caching für einen Endpunkt mit CacheOutput (Minimal API) oder dem [OutputCache]-Attribut (Controller).

app.MapGet("/products", GetProducts)
   .CacheOutput();

// Controller:
// [OutputCache]
// public IActionResult Get() => Ok(...);

Ablauf festlegen

Steuern Sie mit Expire, wie lange eine Antwort im Cache bleibt.

app.MapGet("/products", GetProducts)
   .CacheOutput(policy => policy.Expire(TimeSpan.FromSeconds(30)));

Was gecacht wird

Standardmäßig werden nur GET- und HEAD-Anfragen mit dem Status 200 gecacht, und auch nur, wenn weder Set-Cookie noch eine Autorisierung beteiligt ist – das versehentliche Caching authentifizierter, benutzerspezifischer Antworten ist gefährlich.

// Cached by default: GET/HEAD, 200, no cookies/auth

Nach Query-String variieren

Zwei Anfragen an denselben Pfad mit unterschiedlichen Query-Strings sollten normalerweise getrennt gecacht werden. Verwenden Sie SetVaryByQuery.

app.MapGet("/search", Search)
   .CacheOutput(policy => policy
        .Expire(TimeSpan.FromSeconds(60))
        .SetVaryByQuery("q", "page"));

Nach Header variieren

Sie können den Cache-Schlüssel anhand von Headern variieren – beispielsweise, um für jeden Accept-Language-Wert eine andere gecachte Kopie bereitzustellen.

policy.SetVaryByHeader("Accept-Language");

Eine Basisrichtlinie für alles

AddBasePolicy wendet eine Standardeinstellung auf jeden Endpunkt an, die einzelne Endpunkte weiterhin überschreiben können.

builder.Services.AddOutputCache(options =>
{
    options.AddBasePolicy(policy =>
        policy.Expire(TimeSpan.FromSeconds(10)));
});

Für einen Endpunkt deaktivieren

Wenn eine Basisrichtlinie alles cached, schließen Sie dynamische Endpunkte mit NoCache aus.

app.MapGet("/cart", GetCart)
   .CacheOutput(policy => policy.NoCache());

Kurztest

Bestätigen Sie den Unterschied zwischen den beiden Caching-Funktionen.

Zusammenfassung

Sie haben die Grundlagen des Output-Cachings gelernt:

  • AddOutputCache + UseOutputCache aktivieren serverseitiges Caching.
  • CacheOutput / [OutputCache] aktivieren das Caching für Endpunkte; Expire legt die Dauer fest.
  • Standardmäßig werden nur GET-/HEAD-Antworten mit Status 200 ohne Autorisierung oder Cookies gecacht.
  • SetVaryByQuery und SetVaryByHeader bestimmen den Cache-Schlüssel.

Als Nächstes: Cache-Richtlinien und das Entfernen von Einträgen.

Häufig gestellte Fragen

Ist die Lektion „Grundlagen des Output-Caching“ kostenlos?

Ja — der vollständige Text von „Grundlagen des Output-Caching“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Grundlagen des Output-Caching“?

Puffern Sie Antworten, um den Arbeitsaufwand zu verringern. Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C# Academy zu starten?

Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Grundlagen des Output-Caching“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?

Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Algorithmen zur Ratenbegrenzung
  2. Rate-Limiting-Middleware konfigurieren
  3. Grundlagen des Output-Caching
  4. Cache-Richtlinien und Invalidierung
← Zurück zu C# Academy