Androverse

Önbellek nedir?

Anlamı, kullanım örnekleri ve kararları. Kavramı işin içinde açıyoruz.

Web sözlüğünden

Kısa cevap

Önbellek, daha önce elde edilmiş bir yanıtı veya kaynağı uygun koşullarda yeniden kullanarak tekrar işi azaltmaktır.

Nerede işine yarar?

Ne kadar süre tutulacağı ve ne zaman geçersiz olacağı tanımlanır. Tarayıcı, ara sunucu ve uygulama önbellekleri farklı davranabilir. İçerik güncellemesinde eski yanıtın ne zaman yenileneceği düşünülmezse kullanıcı tutarsız sürümler görebilir.

Bir cümlede uygulaması

Sürüm içeren statik görsellere uzun, güncellenebilir sayfa yanıtlarına kontrollü bir önbellek süresi vermek.

Neyle karıştırılmamalı?

Önbellek yalnız daha hızlı yükleme değil, verinin ne kadar güncel kalacağına ilişkin bir karardır.

Bir çalışma senaryosu

Aynı soruya her defasında yeniden cevap verme.

Bir yazı sayfasının başlığı, gövdesi ve kapağı gün boyunca değişmiyor. Her ziyaretçide veriyi yeniden okuyup aynı çıktıyı oluşturmak yerine hazırlanmış yanıtı bir süre saklamak mümkün. Önbellek bu tekrar kullanımın genel adıdır. Tarayıcıda, dağıtım ağında veya uygulamanın kendi içinde bulunabilir. Önemli soru önbelleğin varlığı değil, neyi hangi anahtarla ve ne kadar süre tuttuğudur. Yanlış yanıtın hızlı gelmesi iyi bir kullanıcı deneyimi sayılmaz.

Bir mağazada ürün açıklamasıyla stok bilgisini aynı süre sakladığını düşün. Açıklama saatlerce aynı kalabilir; stok son satın almayla değişir. İkisini aynı kurala bağlamak ya gereksiz hesaplamaya ya da eski bilgiye yol açar. Önbellek tasarımında verileri güncellik ihtiyacına göre ayırmak gerekir. Bu yalnız teknik bir optimizasyon değildir: kullanıcıya gösterilen uygunluk, fiyat ve bekleme mesajı da bu kararın sonucudur. En güncel görünmesi gereken bilgi için farklı bir doğrulama yolu gerekebilir.

Bir başka sorun kopyanın kime ait olduğudur. Herkese açık bir yazı ortak önbellekte tutulabilir; kullanıcıya özel hesap ekranı aynı biçimde paylaşılamaz. Adrese bakmak her zaman yeterli değildir; dil, yetki veya oturum bilgisi yanıtı değiştirebilir. Bu değişkenler doğru ele alınmazsa farklı kişilere aynı kopya gider. Önbellek anahtarını gereğinden fazla parçalamak da paylaşılabilecek yanıtları ayrı saklayıp yararı azaltabilir. Doğru ayrım, içerik ve erişim modeliyle birlikte kurulur.

Güncelleme anı ayrıca tasarlanır. Kaynakta yazı değiştiğinde tarayıcı, CDN ve uygulama önbelleğinin hepsi aynı anda yenilenmeyebilir. Dosya adında sürüm veya içerik özeti kullanmak statik varlıkları değiştirmeyi kolaylaştırır. İçerik yanıtında ise süre, yeniden doğrulama ve gerektiğinde temizleme yaklaşımı belirlenir. Editörün yeni içerik yayımlandı dediği an ile ziyaretçinin yeni kopyayı gördüğü an arasındaki fark açıklanabilir olmalıdır.

Önbellek kararında en zor sorulardan biri, yanlış eskiliğin maliyetidir. Bir proje kapağının birkaç dakika eski kalmasıyla hesaba özel erişim bilgisinin eski kalması aynı riski taşımaz. Verileri yalnız boyutlarına göre değil, değişim sıklığına ve yanlış sürümün etkisine göre sınıflandır. Kullanıcı bir ayarı kaydettikten sonra kendi yeni değerini görmeyi bekler; ortak önbellek bu beklentiyi yanlış yönetebilir. Okuma ve yazma akışlarının ilişkisini tasarlamak bu yüzden önemlidir. Bir verinin nerede saklandığını, ne zaman geçersiz sayıldığını ve güncellemeden sonra hangi ekranın yeniden alınacağını açıklayan küçük bir kayıt, karmaşık ama belgesiz süre ayarlarından daha anlaşılır olabilir.

Saklamamak ile doğrulamak aynı şey değil.

Kopyayı saklama

Bazı yanıtların tutulmaması gerekir. Böyle bir karar, ilgili önbellek katmanının saklama davranışına yönelik açık bir kural ister. Özellikle kişisel bilgi veya hızla geçersizleşen işlem sonucu için neyin saklandığını bilmek önemlidir. Sayfayı yenilemenin her katmandaki kopyayı temizleyeceğini varsaymak doğru değildir.

Kopyayı yeniden doğrula

Bir yanıt saklanabilir, fakat yeniden kullanılmadan önce kaynağa danışılması istenebilir. Kaynak değişmediyse tüm gövdeyi tekrar göndermeden önceki kopya kullanılabilir. Örneğin no-cache ile no-store aynı amacı anlatmaz. Başlıkların isimlerinden gündelik anlam çıkarmak yerine gerçek protokol davranışı ve kullanılan platformun kuralları incelenir.

Hız kadar güncelliği de tasarlamak

Önbellek kullanırken neyin saklandığı, kimin görebileceği ve ne zaman yenileneceği birlikte belirlenir. Herkese açık bir görselle kişiye özel bir hesabın verisi aynı kurala bağlanamaz. Eski içerik gösterme olasılığı, performans kazancıyla birlikte değerlendirilir.

  • Ortak içerik ile kişisel veriyi ayır.
  • Süre dolumu ve güncelleme sonrası geçersizleştirmeyi belirle.
  • İlk istek, önbellek isabeti ve eski kayıt durumlarını ayrı dene.

Önbelleği temizlemek kalıcı çözüm mü?

Yanlış saklama kuralının etkisini geçici olarak kaldırabilir. Kural düzeltilmezse aynı sorun yeniden oluşur. Sorunun tarayıcıda, CDN'de veya uygulama katmanında olduğunu belirlemek gerekir.

Karar masası

İşin içinde sorulacaklar.

Önbelleği temizlemek sorunu çözmek midir?

Bazen eski içeriği geçici olarak kaldırır, ancak neden yanlış kopyanın tutulduğunu çözmez. Yanlış anahtar, aşırı uzun süre veya eksik güncelleme ilişkisi devam ediyorsa sorun yeniden oluşur. Önce hangi katmanın eski yanıtı verdiği belirlenir. Tarayıcı kopyasıyla CDN kopyasının davranışı farklı olabilir. Kalıcı düzeltme, temizleme düğmesine bağımlı olmayan açık bir yayın ve tazelik kuralı kurmaktır.

Her şeyi uzun süre saklamak daha hızlı mı?

Tekrar kullanımı artırabilir ama doğruluk pahasına yapılmamalıdır. İçeriğin değişme sıklığı, kullanıcıya özel olup olmadığı ve hata hâlinde kabul edilecek yaş birlikte değerlendirilir. Sürüm adı değişen bir görsel uzun süre tutulabilirken fiyat veya hesap sonucu aynı politikayı paylaşmayabilir. Hız hedefi, hangi bilginin ne kadar eski olabileceğine dair ürün kararıyla desteklenmelidir.

Eski kopya gösterirken yenilemek ne işe yarar?

Uygun içerikte ziyaretçiyi bekletmeden mevcut kopyayı sunup arka planda yenilemek yararlı olabilir. Fakat bu davranış her veri türü için doğru değildir. Bir editoryal liste kısa süre eski kalabilir; bir işlemin güncel yetki sonucu aynı rahatlıkla eski sunulmamalıdır. Yöntemin adı kadar hangi yanıt üzerinde kullanıldığı ve yenileme başarısızlığında ne olacağı da önemlidir.

Sıra sende

Bir içeriğin bütün kopyalarını izle.

Bir blog kapağını değiştirdiğini düşün. Görsel dosyası, sayfa HTML’i, liste kartı ve sosyal paylaşım görünümü farklı yerlerde tutulabilir. Bu değişikliğin hangi kopyaları etkileyeceğini çizerek önbellek politikasını içerik ekibinin de anlayacağı bir dille yaz.

Çalışma adımları

Önbellek bir hız hilesinden çok, bilginin yaşam süresine dair anlaşmadır. Doğru kopya, doğru kişiye, kabul edilebilir bir yaşla ulaştığında teknik kazanım kullanıcı deneyimine dönüşür.

Siteyi geliştirmek ve çalışmalarımızın sonucunu ölçmek için çerez kullanmak istiyoruz. Analiz ve pazarlama çerezleri yalnızca izin verirsen çalışır. Gizlilik ve çerezler