Önbellek geçersizleştirme, web sitenizi optimize etmenize, sunucu kaynaklarından tasarruf etmenize ve sayfalarınızın yüklenme süresini kısaltmanıza olanak tanıyan bir önbelleğe alma işlemidir.
Aslında, o kadar güçlü bir teknik ki, tüm dünyada binlerce siteyi hızlandırmak için önbelleğe alma mekanizmamızın bir parçası olarak kullanıyoruz.
Ancak, önbellek geçersizleştirmenin nasıl çalıştığını tam olarak anlamak için, temel bilgilerin bir açıklamasıyla başlamamız gerekir.
Hadi başlayalım!
Önbelleğe alma nedir ve nasıl çalışır?
Önbellek geçersizleştirme işlemine geçmeden önce, web’in nasıl çalıştığının ve önbelleğe almanın ne olduğunun temellerini atmalıyız.
Web siteniz yalnızca bir dosya koleksiyonudur – bir HTML belgesi, resimler, videolar, CSS ve JavaScript.
Bu dosyalar, kaynak sunucunuzda depolanır.
Web sitenize erişmek için ziyaretçileriniz tarayıcıları (istemcileri) aracılığıyla HTTP yanıtlarını geri gönderen kaynak sunucunuza HTTP istekleri gönderir.
Tüm iletişim şöyle görünür:
Sunucu yanıt verdikten sonra, tarayıcı bu bilgiyi tam olarak işleyen bir web sayfasında birleştirir.
Ancak, bu işlem sırasında birkaç sorun ortaya çıkabilir:
- İstemcinizin tarayıcısının yanıtın ilk baytını alması birkaç saniye kadar sürebilir (İlk Bayta Kadar Geçen Süre – TTFB). Bu birkaç saniye, o kullanıcıyla etkileşim kurma şansınızı azaltmak için yeter de artar.
- Sunucuların işleyebilecekleri istek sayısı konusunda bir sınırı vardır. Trafik arttıkça, isteklerin sayısı da artar ve bunlar bir kuyruğa girerek büyük ölçüde daha uzun yanıt sürelerine yol açar.
Bu sorunlara saldırmak için içeriğinizi önbelleğe almayı deneyebilirsiniz.
Önbelleğe alma, web sitesi dosyalarınızın bir kopyasını web önbelleği adı verilen farklı bir yerde saklama işlemidir.
Bir web önbelleği, ziyaretçinizin tarayıcısı (istemci) ve kaynak sunucunuz arasında bir aracı görevi görür.
HTTP yanıtlarını (temsillerini) depolar ve istemcilere sunarlar.
Web önbelleğe alma işlemi şöyle görünür:
Önbelleğe almanın nasıl çalıştığını daha iyi anlamak için işte en sevdiğim önbelleğe alma örneği.
Bu örnek, ‘3,485,250 bölü 23.235 nedir?’ diye bir konuşmasında seyircilere soran bir uzmandan geliyor.
Sonunda, birkaç sessiz dakikadan sonra, biri cevabı bulabildi ve haykırdı (bu arada, 150).
Hemen ardından uzmanımız soruyu tekrar sordu ve bu sefer herkes sayıyı hemen bulabildi.
Web sitenizin içeriğine uygulandığında, önbelleğe almanın temel fikri, zaman alan hesaplamaları bir kez yapmak ve ardından (hızlı bir şekilde!) zaten mevcut olan yanıtı sunmaktır.
Özetlemek gerekirse, önbelleğe almanın faydaları şunlardır:
- Azaltılmış yükleme süresi
- Azaltılmış bant genişliği kullanımı
- Azaltılmış kesinti süresi
- Verileri farklı konumlarda önbelleğe alma (depolama) (CDN’ler)
Açıkçası, önbelleğe alma, web sitenizin performansını artıran birçok avantaj sunar.
Ancak aklınıza tek bir soru gelmiş olabilir:
Web sitemin içeriğini güncellediğimde ne olur?
Önbellek Web Sitenizi Nasıl Etkiler?
Önbelleğe alınmış içerik sunmanın faydalarını zaten biliyorsunuz ve kulağa oldukça çekici geldiği konusunda hemfikiriz.
Ancak, içerik güncellemeleriyle uğraşmanın ve ziyaretçilerinizin web sitenizin en son sürümünü görmesini sağlamanın şu kadarcık küçük bir sakıncası vardır.
Önbelleğe alınmış anlık görüntüler (temsil veya basitçe kopya olarak da bilinir) teknik olarak statik HTML dosyaları olduğundan, kendilerini güncelleyemezler.
Bu, köpeğinizin yağmurda oynadıktan hemen sonra fotoğrafını çekip banyodan sonraki fotoğrafıyla karşılaştırmaya benzer. Sadece eşleşmeyecekler.
Bu nedenle, eskisinin yerine yeni bir anlık görüntü yapılması gerekir.
Bunu gerçekleştirmenin bir yolu, içeriğinizin sık sık yeni anlık görüntülerini almaktır. Ancak bu, uygulamanızdaki yükü artıracaktır.
Görünen o ki, konu önbelleğe alma olduğunda web sitesi sahiplerinin karşılaştığı bir ikilem var.
Bir yandan, içeriği daha uzun süre önbelleğe alarak elde edilen daha düşük uygulama yükü ve daha hızlı yanıt süresi seçeneğine sahipsiniz.
Öte yandan, çevrimiçi yayınladığınız anda taze içerik sunmak istersiniz.
Bir çıkmaza girmiş gibi görünebiliriz.
Tam olarak değil!
Önbellek Geçersizleştirme Nedir ve Nasıl Çalışır?
Önbellek geçersizleştirme, önbelleğe alınmış içeriği geçersiz (veya eski) olarak bildiren bir önbelleğe alma işlemidir.
Bir gösterim geçersiz kılındığında, dosyanın en güncel sürümü olmaktan çıkar.
Önbellek geçersizleştirmenin nihai amacı, yukarıda belirtilen sorunların her ikisini de ödün vermeden çözmektir.
Ancak, web sitenizin performansını optimize etmek söz konusu olduğunda önbelleğinizi geçersizleştirmenin tek çözüm olmadığını bilmekte fayda var.
Bazı durumlarda, önbelleğinizi temizlemek isteyebilirsiniz.
Önbellek temizleme (“önbellek boşaltma” olarak da bilinir), kaynakların önbellekten derhal etkin bir şekilde kaldırılması/silinmesi anlamına gelir.
Diyelim ki fiyatları günlük olarak güncellenen bir e-ticaret siteniz var.
Güncellemeleri hemen görmek isteyebilirsiniz ve bunu yapmanın bir yolu önbelleği silmektir.
Web sitenizin önbelleği ve içeriği üzerinde tam kontrole sahip olmanın cazip geldiğini biliyorum.
Ve her değişiklik yaptığınızda önbelleği temizleme fikrine zaten yönelmiş olabilirsiniz.
Ancak, önbelleğinizi temizlemenin web sitenizin performansına zarar verebileceği bazı durumlar vardır.
Örneğin, web sitenize çok sayıda ziyaretçi çeken sezonluk bir pazarlama kampanyası yürüttüğünüzü varsayalım.
Bu yoğun trafik döneminde, ziyaretçilerinizin değişiklikleri hemen görebilmesi için bazı içerikleri güncellemeye ve önbelleğinizi silmeye karar veriyorsunuz.
Ancak, trafiğin yoğun olduğu bir dönemde bir temizleme gerçekleştiğinde, ziyaretçilerinize artık önbellekten hizmet verilmez.
Ve sunucunuzun yeni önbellek dosyaları oluşturmak için fazladan çalışması gerekir, bu da artan bant genişliği kullanımı, sunucu kaynakları ve daha yavaş yükleme süreleri ile sonuçlanır.
Bu durumda, dosyaları arka planda yenileyebilmeniz için önbelleğinizi geçersizleştirmek daha iyidir ve her şey hazır olduğunda önbellekten sitenizin en son sürümünü sunmaya başlamalısınız.
Önemli Not:
Önbellek geçersizleştirme mekanizmasının bir dezavantajı, arka planda yenileri hazırlanırken biraz eski temsillerin sunulabilmesidir. Ancak bu, ziyaretçilerin her zaman hızlı sayfaları görmesini sağlar.
Web sitenizde doğru önbelleğe almayı ayarlamanın çok karmaşık görünebileceğini biliyorum; ancak bana biraz daha da dayanın.
Çözüm bizde!
TurboPak ile Önbellek Geçersizleştirme
Web sitenizde bir önbellek geçersizleştirmenin çok fazla iş olabileceğini anlıyoruz.
Aslında, Phil Karlton ünlü bir sözü var,
‘Bilgisayar Biliminde yalnızca iki zor şey vardır: önbellek geçersizleştirme ve bir şeyleri adlandırma’.
Neyse ki, TurboPak ile önbellek geçersizleştirmenin ne kadar zor olduğu konusunda endişelenmenize gerek yok – önceden yapılandırılmış ve hemen kullanıma hazır olarak sunuyoruz.
Aslında, otomatik olarak aşağıdakileri yapan bir Gelişmiş Önbellekleme Mekanizmasına sahibiz:
- Ziyaretçilere önbelleğe alınmış içerik sunarak yanıt sürelerini hızlandırır
- Web sitenizdeki değişiklikleri algılar
- Arka planda yeni önbellek dosyaları oluşturmaya başlar ve hazır olduklarında ziyaretçilere sunar
Önbellek Geçersizleştirme ve Önbellek Isınması, bu mekanizmada büyük rol oynar.
Ancak bu, yeni anlık görüntü ile değiştirilmek için eski önbelleğin temizlenmesi gerektiğinden bir değişiklik yapıldığında sayfa hızınızın düştüğü anlamına mı geliyor?
Aslında hayır!
Akıllı Önbellek Geçersizleştirme özelliğimiz, sayfanın önceden önbelleğe alınmış sürümünü gerçek zamanlı ziyaretçilere sunarken önbelleğin arka planda güncellenmesini sağlar.
Yine, bir güncelleme algılandığında bu işlem otomatik olarak gerçekleşir ve tamamlanması genellikle yalnızca birkaç saniye sürer.
Sonuç olarak, web sitenizin ziyaretçilerine asla optimize edilmemiş (yavaş) sayfalar sunmamış olursunuz.
Siz de fikrinizi belirtin