0Pricing
C# Academy · Ders

Çıktı Önbellekleme Temelleri

İş yükünü azaltmak için yanıtları önbelleğe alın.

Çıktı Önbellekleme Temelleri, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.

Çıktı Önbellekleme Nedir?

Çıktı önbellekleme, bir uç noktanın tam HTTP yanıtını depolar; böylece yinelenen istekler işleyici yeniden çalıştırılmadan önbellekten sunulur. Bu, okuma ağırlıklı uç noktalarda gecikmeyi ve yükü büyük ölçüde azaltır.

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

Çıktı Önbelleği ve Yanıt Önbelleği

Yerleşik çıktı önbellekleme (.NET 7'de eklenmiştir), yanıtları sunucuda depolar ve üzerinde tam denetim sağlar. Daha eski yanıt önbellekleme ise yalnızca HTTP önbellek üst bilgilerini gönderir ve bunlara uymaları için istemciye veya ara sunuculara güvenir.

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

AddOutputCache

Hizmeti AddOutputCache ile kaydedin.

builder.Services.AddOutputCache();

UseOutputCache

Ara yazılımı UseOutputCache ile işlem hattına ekleyin. Yönlendirmeden ve varsa CORS'tan sonra yerleştirin.

var app = builder.Build();

app.UseOutputCache();

app.MapControllers();

Bir Uç Noktada CacheOutput

Bir uç noktada önbelleğe almayı CacheOutput (minimal API) veya [OutputCache] özniteliği (denetleyiciler) ile etkinleştirin.

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

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

Sona Erme Süresini Ayarlama

Bir yanıtın ne kadar süre önbellekte kalacağını Expire ile denetleyin.

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

Neler Önbelleğe Alınır

Varsayılan olarak yalnızca 200 durum koduna sahip GET ve HEAD istekleri, ayrıca Set-Cookie veya yetkilendirme söz konusu olmadığında önbelleğe alınır; kimlik doğrulaması yapılmış, kullanıcıya özel yanıtları yanlışlıkla önbelleğe almak tehlikelidir.

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

Sorgu Dizesine Göre Değiştirme

Farklı sorgu dizelerine sahip aynı yola yapılan iki istek genellikle ayrı ayrı önbelleğe alınmalıdır. SetVaryByQuery kullanın.

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

Üst Bilgiye Göre Değiştirme

Önbellek anahtarını üst bilgilere göre değiştirebilirsiniz; örneğin, Accept-Language başlığına göre per dil için farklı bir önbelleğe alınmış kopya sunabilirsiniz.

policy.SetVaryByHeader("Accept-Language");

Her Şey İçin Temel İlke

AddBasePolicy, her uç noktaya varsayılan bir ayar uygular; tek tek uç noktalar bu ayarı yine geçersiz kılabilir.

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

Bir Uç Nokta İçin Devre Dışı Bırakma

Temel ilke her şeyi önbelleğe alıyorsa dinamik uç noktaları NoCache ile hariç tutun.

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

Hızlı Kontrol

İki önbelleğe alma özelliği arasındaki farkı doğrulayın.

Özet

Çıktı önbelleğe almanın temellerini öğrendiniz:

  • AddOutputCache + UseOutputCache, sunucu tarafı önbelleğe almayı etkinleştirir.
  • CacheOutput / [OutputCache], uç noktaları önbelleğe almaya dahil eder; Expire süreyi belirler.
  • Varsayılan olarak yalnızca kimlik doğrulaması veya çerezleri olmayan GET/HEAD 200 yanıtları önbelleğe alınır.
  • SetVaryByQuery ve SetVaryByHeader, önbellek anahtarının yapısını belirler.

Sırada: önbellek ilkeleri ve geçersiz kılma.

Sıkça Sorulan Sorular

“Çıktı Önbellekleme Temelleri” dersi ücretsiz mi?

Evet — “Çıktı Önbellekleme Temelleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.

“Çıktı Önbellekleme Temelleri” dersinde ne öğreneceğim?

İş yükünü azaltmak için yanıtları önbelleğe alın. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C# Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Çıktı Önbellekleme Temelleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Hız Sınırlama Algoritmaları
  2. Hız Sınırlama Ara Yazılımını Yapılandırma
  3. Çıktı Önbellekleme Temelleri
  4. Önbellek İlkeleri ve Geçersiz Kılma
← C# Academy Sayfasına Dön