hosting

Sayfa Önbelleği: Her Ziyarette Sayfayı Yeniden Üretmeyi Bırakmak

Önbelleğin işleyişi, hangi sayfalar uygun, gizlilik tehlikesi, karma sayfalar, temizleme kuralları ve disk etkisi. Sayfa Önbelleği: Her Ziyarette Sayfayı…

Sayfa Önbelleği: Her Ziyarette Sayfayı Yeniden Üretmeyi Bırakmak
İçindekiler
  1. Nasıl Çalışır?
  2. Hangi Sayfalar Uygun?
  3. En Büyük Tehlike
  4. Karma Sayfalar
  5. Önbellek Temizleme
  6. Süre Bazlı Yaklaşım
  7. Hosting'de Kurulum
  8. Disk ve Dosya Sayısı
  9. Sonuç
  10. Sıkça Sorulan Sorular (SSS)
  11. Sayfa önbelleği güvenlik riski taşır mı?
  12. Sepet sayısı gibi kişisel öğeler ne olacak?
  13. İçeriği güncelledim ama eski hâli görünüyor?
  14. Önbellek disk kotamı doldurur mu?

Sayfa Önbelleği: Her Ziyarette Sayfayı Yeniden Üretmeyi Bırakmak

Her ziyaretçi geldiğinde PHP çalışıyor, veritabanına onlarca sorgu gidiyor ve aynı HTML tekrar tekrar üretiliyor. Oysa içerik saatlerdir değişmedi. Bu tekrarı ortadan kaldırmak, paylaşımlı hostingde alabileceğiniz en büyük hız kazancıdır.

Bu yazı, tam sayfa önbelleklemeyi ele alıyor.

Nasıl Çalışır?

Sayfa önbelleği, üretilen HTML'i saklayıp sonraki isteklere doğrudan sunar:

  1. İlk ziyaretçi gelir
  2. Sayfa normal şekilde üretilir
  3. Üretilen HTML bir dosyaya kaydedilir
  4. Sonraki ziyaretçiye bu dosya sunulur
  5. PHP ve veritabanı hiç devreye girmez

Beşinci adım kazancın kaynağıdır: önbellekten sunulan bir sayfa, statik bir dosya kadar hızlıdır — çünkü fiilen statik bir dosyadır.

Kaynak tüketiminiz de aynı oranda düşer. Paylaşımlı hostingde kaynak limiti sorunu yaşayan sitelerin çoğu, bu tek değişiklikle rahatlar.

Hangi Sayfalar Uygun?

Her sayfa önbelleklenemez. Ayrım nettir:

Uygun Uygun değil
Blog yazıları Sepet sayfası
Ürün listeleri Hesabım sayfaları
Kategori sayfaları Ödeme adımları
Kurumsal sayfalar Yönetim paneli
Ana sayfa Arama sonuçları

Ayrımı belirleyen soru şudur: bu sayfa her ziyaretçiye aynı mı görünüyor?

Yanıt evetse önbelleklenebilir. Kişiye özel bir öğe varsa — kullanıcı adı, sepet sayısı, kişiselleştirilmiş öneriler — dikkat gerekir.

En Büyük Tehlike

Yanlış yapılandırılmış bir sayfa önbelleği ciddi bir gizlilik sorunu üretir:

  • Giriş yapmış bir kullanıcının sayfası önbelleğe alınır.
  • Bir sonraki ziyaretçiye o sayfa sunulur.
  • Yabancı biri başkasının adını ve bilgilerini görür.

Bu senaryo teorik değildir ve sık yaşanır: giriş yapmış kullanıcıların sayfalarını önbelleğe almamak, kurulumun ilk ve en kritik kuralıdır.

Korunma yöntemi basittir — oturum çerezi taşıyan istekler önbelleği tamamen atlamalıdır. Çoğu önbellek çözümü bunu varsayılan olarak yapar ama doğrulanması şarttır.

Karma Sayfalar

Sayfanın çoğu ortak, küçük bir kısmı kişiye özelse çözümler vardır:

  1. Kişisel kısmı istemci tarafında doldurun. Ayrı bir istekle.
  2. Sayfayı önbellekleyin, o parçayı boş bırakın.
  3. Küçük bir betik eksik veriyi çeksin.

Bu yaklaşımın kazancı orantısızdır: yalnızca sepet sayısı için tüm sayfayı dinamik tutmak, çok küçük bir ihtiyaç için çok büyük bir maliyet ödemektir.

Sayfanın tamamı önbellekten gelir, yalnızca birkaç yüz baytlık bir istek dinamik çalışır. Sunucu yükü büyük ölçüde düşer.

Önbellek Temizleme

Önbelleğin en kritik yanı, ne zaman geçersiz kılınacağıdır:

Olay Temizlenecek
Yazı güncellendi O sayfa, ana sayfa, kategori
Yeni ürün eklendi Listeler ve kategoriler
Fiyat değişti Ürün ve liste sayfaları
Yorum onaylandı İlgili yazı
Menü değişti Tüm sayfalar

Birinci satır sık atlanan bir ayrıntı içerir: bir yazıyı güncellediğinizde yalnızca o sayfayı temizlemek yetmez — ana sayfa ve kategori listelerinde de o yazının başlığı görünür.

Beşinci satır ise tam temizlik gerektirir. Menü tüm sayfalarda bulunduğu için değiştiğinde önbelleğin tamamı geçersizdir.

Süre Bazlı Yaklaşım

Olay bazlı temizleme kurmak zorsa, süre bazlı bir yapı da işe yarar:

  • Her sayfa belirli bir süre saklanır.
  • Süre dolunca yeniden üretilir.
  • Kurulumu çok basittir.
  • Güncelleme gecikmeli görünür.

Dördüncü madde kabul edilmesi gereken ödünleşimdir: bir saatlik önbellek süresi, yaptığınız değişikliğin bir saate kadar görünmemesi demektir.

Blog ve kurumsal siteler için bu genellikle kabul edilebilirdir. Fiyat değişen e-ticaret sitelerinde ise olay bazlı temizleme gerekir.

İki yaklaşım birleştirilebilir — süre bazlı çalışan bir önbellek, önemli değişikliklerde elle de temizlenebilir.

Hosting'de Kurulum

Paylaşımlı hostingde uygulanabilir seçenekler:

  1. Uygulama seviyesi önbellek eklentisi. En yaygın.
  2. Statik dosya üretimi. En hızlı sonuç.
  3. Kontrol panelindeki önbellek özelliği. Varsa kullanın.

İkinci seçenek en yüksek performansı verir: önbelleklenen sayfa gerçek bir HTML dosyası olarak diske yazılırsa, web sunucusu onu PHP'yi hiç başlatmadan sunar.

Bu, PHP'nin devreye girdiği eklenti tabanlı çözümlerden belirgin şekilde hızlıdır. Yönlendirme kuralıyla, dosya varsa doğrudan sunulur, yoksa uygulamaya gidilir.

Bu kuralları dizin yapılandırma dosyasıyla tanımlayabildiğiniz Linux hosting paketleri bu yöntemi destekler.

Disk ve Dosya Sayısı

Sayfa önbelleği disk tüketir ve sınırlarınızı zorlayabilir:

  • Her sayfa varyantı ayrı dosyadır.
  • Mobil ve masaüstü ayrı saklanabilir.
  • Sayfalama her sayfa için dosya üretir.
  • Filtre kombinasyonları hızla çoğalır.

Dördüncü madde kontrolsüz büyümenin kaynağıdır: filtreli liste sayfalarını önbelleklemek, binlerce farklı dosya üretebilir ve dosya sayısı kotanızı tüketir.

Çözüm, önbelleklenecek adresleri sınırlamaktır — parametre içeren adresleri kapsam dışı bırakmak, hem disk hem karmaşıklık açısından doğru tercihtir.

Sonuç

Tam sayfa önbelleği, paylaşımlı hostingde alabileceğiniz en büyük hız kazancıdır — önbellekten sunulan bir sayfa statik dosya kadar hızlıdır çünkü fiilen statik bir dosyadır. Kurulumun ilk ve en kritik kuralı, giriş yapmış kullanıcıların sayfalarını asla önbelleğe almamaktır; aksi hâlde bir ziyaretçi başkasının bilgilerini görebilir. Sayfanın küçük bir kısmı kişiselse tümünü dinamik tutmayın, o parçayı istemci tarafında doldurun. Ve filtreli adresleri önbellek kapsamı dışında bırakın — dosya sayınızı tüketirler.

Sıkça Sorulan Sorular (SSS)

Sayfa önbelleği güvenlik riski taşır mı?

Yanlış yapılandırılırsa evet ve ciddi bir risktir. Giriş yapmış bir kullanıcının sayfası önbelleğe alınırsa, bir sonraki ziyaretçiye o sayfa sunulabilir. Oturum çerezi taşıyan isteklerin önbelleği tamamen atladığını mutlaka doğrulayın.

Sepet sayısı gibi kişisel öğeler ne olacak?

Tüm sayfayı dinamik tutmayın — çok küçük bir ihtiyaç için çok büyük bir maliyet olur. Sayfayı önbellekleyip o parçayı boş bırakın ve küçük bir betikle ayrı bir istekten doldurun. Sunucu yükü büyük ölçüde düşer.

İçeriği güncelledim ama eski hâli görünüyor?

Önbellek temizlenmemiş demektir. Bir yazıyı güncellediğinizde yalnızca o sayfayı değil, o yazının başlığının göründüğü ana sayfa ve kategori listelerini de temizlemeniz gerekir. Süre bazlı bir yapı kullanıyorsanız, süre dolana kadar eski hâli görünür.

Önbellek disk kotamı doldurur mu?

Filtreli adresleri kapsama alırsanız evet — filtre kombinasyonları binlerce dosya üretebilir ve dosya sayısı kotanızı tüketir. Parametre içeren adresleri önbellek kapsamı dışında bırakmak hem disk hem karmaşıklık açısından doğru tercihtir.