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 cacheOutput 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 headersAddOutputCache
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/authNach 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+UseOutputCacheaktivieren serverseitiges Caching.CacheOutput/[OutputCache]aktivieren das Caching für Endpunkte;Expirelegt die Dauer fest.- Standardmäßig werden nur GET-/HEAD-Antworten mit Status 200 ohne Autorisierung oder Cookies gecacht.
SetVaryByQueryundSetVaryByHeaderbestimmen 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
- Algorithmen zur Ratenbegrenzung
- Rate-Limiting-Middleware konfigurieren
- Grundlagen des Output-Caching
- Cache-Richtlinien und Invalidierung