Mehmet

WFN Üye
Konular
1,151
Mesajlar
1,152
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
Cache, Türkçede önbellek, daha önce alınan veya hesaplanan veriyi sonraki kullanım için saklama mekanizmasıdır. Web sitelerinde tarayıcı, sunucu ve CDN gibi katmanlarda kullanılabilir. Amaç, aynı içeriği her istekte baştan üretme veya aktarma ihtiyacını azaltmaktır. Bunun yararı, saklanan kopyanın istenen içerikle eşleşmesine ve doğru kurallarla kullanılmasına bağlıdır.

Cache nasıl çalışır?​

Örneğin tarayıcı bir style.css dosyasını aldıktan sonra yanıtın kuralları izin veriyorsa bir kopyasını saklayabilir. Sonraki istekte bu kopya tazeyse ve yeniden kullanım koşulları sağlanıyorsa dosyayı tekrar indirmesi gerekmez. Sunucu veya CDN önbelleğinde ise ziyaretçi yine bir sunucuya bağlanır; hazır yanıtın kullanılması kaynak uygulamanın çalışmasını azaltabilir.

HTTP önbelleği bir isteğe ait yanıtı saklar. Uygulama içinde ise hesaplanmış veriler de ayrıca önbelleğe alınabilir. Bu yüzden “cache'i temizledim” derken hangi kayıtların, nereden kaldırıldığını belirtmek gerekir.

Web sitesinde hangi önbellekler bulunabilir?​

Aşağıdaki başlıklar tek bir sınıflandırmanın birbirini dışlayan seçenekleri değildir. Sayfa önbelleği, uygulama veya CDN katmanında da bulunabilir.

ÖnbellekBulunduğu yerSaklanan bilgiye örnek
Tarayıcı önbelleğiZiyaretçinin cihazıCSS, JavaScript, görsel ve uygun HTTP yanıtları
Uygulama önbelleğiUygulamanın kullandığı bellek veya depolamaYeniden hesaplanması yerine tekrar kullanılan veriler
Sayfa önbelleğiSunucu, eklenti veya ara katmanDaha önce üretilmiş HTML çıktısı
Paylaşımlı önbellekReverse proxy veya CDN gibi ara sunucularBirden fazla kullanıcıya sunulabilen yanıtlar

Bu katmanlar birlikte çalışabilir. Tarayıcıdaki kopyayı kaldırmak, CDN'deki kopyayı kaldırmaz. CDN temizliği de uygulamanın kendi tuttuğu veriyi kendiliğinden yenilemeyebilir.

Cache-Control başlığı neyi belirler?​

Cache-Control, HTTP yanıtının saklanması ve yeniden kullanılması için kurallar taşır. Sık karşılaşılan yanıt yönergeleri şunlardır:
  • max-age: Yanıtın yaşı belirtilen süreyi aşana kadar taze sayılmasını sağlar. Süre saniyedir; her indirmede sıfırdan başlamaz.
  • no-cache: Saklamayı yasaklamaz; saklanan yanıt yeniden kullanılmadan önce kaynak sunucuyla doğrulanmalıdır.
  • no-store: Yanıtın HTTP önbelleğine kaydedilmemesini ister. Aynı URL için önceden saklanmış kopyaları otomatik silmez.
  • private: Yanıtın paylaşımlı HTTP önbelleğinde saklanmasını engeller; tarayıcıdaki özel önbellekte saklanmasına izin verebilir.
Koşullu doğrulamada ETag veya Last-Modified kullanılabilir. İçerik değişmemişse sunucu 304 Not Modified döndürerek mevcut gövdenin yeniden kullanılmasını sağlayabilir. Bu durumda ağ isteği yapılmıştır; yalnızca dosyanın tamamı tekrar aktarılmamıştır.

Sepet, hesap veya kişiye özel ekranlar ortak önbellekte başka kullanıcılara sunulmamalıdır. Hiç saklanmaması gereken hassas yanıtlarda no-store değerlendirilir. Ayrıca kullanılan CDN ve uygulama önbelleğinin kendi kuralları kontrol edilmelidir; yalnız başlık eklemek, özel bir önbellek yapılandırmasının doğru olduğunu kanıtlamaz.

Değişiklik yaptığım hâlde neden eski içerik görünüyor?​

Eski kopya bir önbellekten geliyor olabilir; ancak yanlış dosyanın yüklenmesi veya uygulamanın eski çıktıyı yeniden üretmesi de araştırılmalıdır. Önce tarayıcıdaki adres ile sunucuda değiştirdiğiniz dosyanın aynı kaynağı gösterdiğini doğrulayın.

Statik dosya değiştiğinde URL'ye sürüm veya içerik özeti eklemek yaygın bir yöntemdir. Örneğin style.v2.css, eski style.v1.css adresinden farklı bir kaynak olur. Sorgu parametresiyle sürümleme de kullanılabilir; CDN'nin bu parametreyi önbellek anahtarına katıp katmadığı kontrol edilmelidir. HTML içinde yeni dosya adresinin yayımlandığını da doğrulayın.

Önbellek sorununu nasıl ayırabilirsiniz?​

  1. Değişen dosyanın doğru sunucuda ve adreste bulunduğunu kontrol edin. Kaynak dosyanın kendisi eskiyse önbellek temizliği sorunu çözmez.
  2. Aynı adresi başka bir tarayıcı veya cihazda karşılaştırın. Fark yalnız bir istemcideyse yerel önbelleği araştırın; bu gözlem tek başına kesin neden değildir.
  3. Tarayıcının ağ araçlarında ilgili isteğin yanıtını ve Cache-Control başlığını inceleyin. Varsa Age ve CDN'ye özgü önbellek durumu başlıklarını da değerlendirin. Her sistem aynı durum başlığını kullanmaz.
  4. Eski yanıtı tuttuğu belirlenen katmanda, ilgili içeriği hedefleyerek temizleme veya geçersiz kılma uygulayın. Ardından aynı URL'nin güncel içeriği sunduğunu tekrar kontrol edin.
  5. Eski içerik tekrar oluşuyorsa yalnız temizlemeyi tekrarlamayın. Önbellek anahtarını, içerik yenileme akışını ve kaynak sunucu seçimini inceleyin.

Sık sorulan sorular​

Cache ile çerez aynı şey mi?​

Hayır. Önbellek, yeniden kullanılacak içerik veya yanıt kopyalarını tutar. Çerezler ise oturum kimliği veya tercih gibi küçük verileri sonraki isteklere taşıyabilir. Tarayıcıda yalnız önbelleği temizlemek ile çerezleri de kaldırmak aynı işlem değildir.

Cache bir yedek yerine geçer mi?​

Hayır. Önbellekte hangi verinin tutulacağı ve ne zaman kaldırılacağı yeniden kullanım kurallarına bağlıdır. Kalıcı ve geri yüklenebilir bir yedek düzeni yerine, geçici bir içerik kopyasına güvenilmemelidir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic