
Sitenizi hızlandırmanın en ucuz yolu, dosyaları hiç indirtmemektir. Bunun anahtarı sunucunuzun gönderdiği birkaç başlıkta saklı — ve yanlış yapılandırıldığında ya hız kaybedersiniz ya da kullanıcılar eski içerik görür.
Bu yazı, önbellek başlıklarının doğru kullanımını ele alıyor.
İki Farklı Soru
Önbellekleme iki ayrı kararı içerir ve karıştırılmamalıdır:
- Ne kadar süre saklanacak? Bu süre boyunca sunucuya hiç sorulmaz.
- Süre dolunca ne olacak? Yeniden indirilecek mi, doğrulanacak mı?
İkinci soru performans açısından önemlidir: süresi dolan bir dosya için tarayıcı sunucuya sorar ve dosya değişmemişse yalnızca "değişmedi" yanıtı alır — içerik tekrar indirilmez.
Bu yanıt birkaç yüz bayttır. Yani süre dolsa bile, doğru yapılandırmayla büyük bir dosyayı yeniden indirmekten kurtulursunuz.
Süre Kararı
Dosya türüne göre uygun süreler farklıdır:
| İçerik türü | Önerilen yaklaşım |
|---|---|
| Sürümlü statik dosyalar | Çok uzun süre — bir yıl |
| Görseller | Uzun süre |
| HTML sayfaları | Kısa veya doğrulamalı |
| API yanıtları | Veriye göre değişir |
| Kişiye özel içerik | Önbelleklenmemeli |
Birinci satırdaki koşul kritiktir: bir dosyayı uzun süre önbelleklemek, ancak adı içeriğiyle birlikte değişiyorsa güvenlidir.
Dosya adına içerik özeti eklendiğinde, içerik değiştiğinde ad da değişir ve tarayıcı onu yeni bir dosya olarak indirir. Bu yapı olmadan uzun süre kullanmak, kullanıcıların eski dosyayla kalmasına yol açar.
HTML İçin Özel Durum
Ana sayfa ve içerik sayfaları farklı ele alınmalıdır:
- HTML uzun süre önbelleklenmemelidir
- Çünkü içindeki dosya adlarını taşır
- Eski HTML, artık var olmayan dosyalara işaret edebilir
- Sonuç, sitenin bozuk görünmesidir
Üçüncü madde bir yayın sonrası yaşanan klasik sorundur: tarayıcı eski HTML'i önbellekten kullanıyorsa, o HTML'in işaret ettiği eski stil dosyası sunucudan silinmiş olabilir.
Doğru yaklaşım HTML için doğrulamalı önbellek kullanmaktır: tarayıcı her seferinde sorar, değişmemişse kısa bir yanıt alır. Maliyet küçük, kazanç tutarlılıktır.
Kişiye Özel İçerik
Giriş yapmış kullanıcılara özel sayfalar dikkat gerektirir:
- Ara önbellekler bu içeriği saklamamalıdır.
- Tarayıcı önbelleği de sınırlanmalıdır.
- Çerezle değişen içerik işaretlenmelidir.
- Çıkış sonrası geri tuşu eski sayfayı göstermemelidir.
Dördüncü madde somut bir güvenlik açığıdır: ortak kullanılan bir bilgisayarda çıkış yapan kullanıcının sayfası, geri tuşuyla önbellekten geri gelebilir.
Bu, banka veya panel tipi uygulamalarda ciddi bir sorundur ve doğru önbellek başlıklarıyla önlenir.
Birinci madde ise daha tehlikeli bir senaryoyu kapsar — ara bir önbellek kişiye özel bir sayfayı saklarsa, başka bir kullanıcıya sunabilir.
Doğrulama Mekanizması
Tarayıcının "değişti mi" sorusunu sorması iki yolla olur:
| Yöntem | Dayanağı |
|---|---|
| Son değişiklik tarihi | Dosyanın zaman damgası |
| İçerik etiketi | İçeriğin özeti |
İkinci yöntem daha güvenilirdir: dosyayı yeniden yüklemek zaman damgasını değiştirir ama içerik aynıysa etiket değişmez — gereksiz indirme önlenir.
Çok sunuculu yapılarda dikkat gerekir. Aynı dosya farklı sunucularda farklı zaman damgası taşıyabilir; içerik tabanlı etiket bu tutarsızlığı ortadan kaldırır.
Ara Önbellekler
Tarayıcı ile sunucunuz arasında başka katmanlar olabilir:
- İçerik dağıtım ağı
- Ters vekil
- Kurumsal vekil sunucular
- Operatör önbellekleri
Bu katmanlar aynı başlıkları okur ama davranışları farklılaştırılabilir: paylaşılan önbellekler için ayrı bir süre tanımlayarak, tarayıcıdan farklı bir politika uygulayabilirsiniz.
Tipik kullanım şudur: tarayıcıda kısa süre, dağıtım ağında uzun süre. Böylece içerik değiştiğinde dağıtım ağını temizlemeniz yeterli olur — kullanıcı tarayıcılarını temizleyemezsiniz zaten.
Doğrulama ve Test
Yapılandırmanın çalıştığını kontrol etmek için:
- Geliştirici araçlarında ağ sekmesini açın.
- Sayfayı ikinci kez yükleyin. Dosyalar önbellekten mi geliyor?
- Yanıt başlıklarını inceleyin.
- Sert yenileme ile karşılaştırın.
- Bir dosyayı değiştirip test edin. Yeni sürüm geliyor mu?
Beşinci madde en önemli testtir ve genellikle atlanır: önbelleğin çalıştığını doğrulamak kolaydır, güncellemenin ulaştığını doğrulamak ise asıl testtir.
Bu ayarları web sunucusu yapılandırmasından tanımladığınız VDS paketleri üzerinde, dosya türü bazında farklı politikalar uygulayabilirsiniz.
Sonuç
Önbellekleme iki ayrı karardır: ne kadar saklanacağı ve süre dolunca ne olacağı. İkincisi kritiktir — süresi dolan bir dosya için tarayıcı sorar ve değişmemişse içerik tekrar indirilmez. Uzun süre yalnızca adı içeriğiyle değişen dosyalar için güvenlidir. HTML'i uzun süre önbelleklemeyin: eski HTML, sunucudan silinmiş dosyalara işaret edebilir ve site bozuk görünür. Kişiye özel sayfalarda ise çıkış sonrası geri tuşu riskini unutmayın.
Sıkça Sorulan Sorular (SSS)
Dosyaları ne kadar süre önbelleklemeliyim?
Adı içeriğiyle birlikte değişen statik dosyalar için çok uzun — bir yıla kadar. Bu yapı yoksa uzun süre kullanmak tehlikelidir, çünkü kullanıcılar eski dosyayla kalır. HTML için ise doğrulamalı kısa süre uygundur.
Dosyayı güncelledim ama kullanıcılar eskisini görüyor?
Muhtemelen dosya adı değişmiyor ve uzun önbellek süresi tanımlı. Çözüm, dosya adına içerik özeti eklemektir — içerik değiştiğinde ad da değişir ve tarayıcı onu yeni bir dosya olarak indirir.
HTML'i neden uzun süre önbellekleyemem?
Çünkü HTML, stil ve betik dosyalarının adlarını taşır. Eski bir HTML önbellekten kullanılırsa, işaret ettiği dosyalar sunucudan silinmiş olabilir ve sayfa bozuk görünür. HTML için doğrulamalı önbellek doğru tercihtir.
Giriş gerektiren sayfalarda ne yapmalıyım?
Paylaşılan önbelleklerin bu içeriği saklamasını açıkça engelleyin ve çıkış sonrası geri tuşuyla sayfanın geri gelmemesini sağlayın. Ortak kullanılan bir bilgisayarda önbellekten geri gelen bir panel sayfası ciddi bir güvenlik açığıdır.