Tüm yazılar
IP & Ağ

Site güncellendi ama eski hali mi görünüyor? Önbellek kontrolü

Sitenizde güncellenmeyen CSS veya görseli bulun. Cache-Control, ETag, 304 ve CDN önbelleği sonuçlarını bir dosya üzerinden okuyun.

Eski görünen sayfanın hangi dosyası eski?

Bir sitedeki başlığı değiştirdiniz ama ziyaretçi hâlâ eski tasarımı görüyor. Önce hangi dosyanın eski geldiğini belirleyin. HTML güncel olabilir ve sayfa eski CSS dosyasını çağırıyor olabilir. Ya da CSS yeni olduğu halde HTML, önceki dosya adını kullanıyor olabilir. Sayfayı açıp geliştirici araçlarında belge ile ilgili CSS veya görsel isteğini ayrı seçin.

Yanıt başlıklarında Cache-Control, ETag ve varsa Age değerini not edin. Ağ sekmesi “disk cache” ya da “memory cache” gösteriyorsa tarayıcı cevabı yeniden kullanmış olabilir. Tek başına 200 durum kodu her isteğin asıl sunucuya ulaştığı anlamına gelmez.

max-age, no-cache ve no-store arasındaki fark

Cache-Control: max-age=600, yanıtın tazelik ömrünü 600 saniye olarak belirtir. Bu süre içinde önbellek, kurallar izin veriyorsa aynı cevabı yeniden sunabilir. no-cache, saklanan cevabı tekrar kullanmadan önce doğrulama ister. no-store ise önbelleğin bu yanıtı saklamamasını söyler. Bu iki direktif isimleri benzer olsa da farklı yayın kararlarıdır.

Örneğin herkese açık ve dosya adı her değişiklikte yenilenen bir görsel uzun süre önbelleğe alınabilir. Kişiye özel veya hassas bir hesap sayfası için aynı kuralı uygulamayın. Paylaşılan CDN önbelleğine kişiye özel cevap koymak başka kullanıcıya yanlış içerik gösterebilir.

ETag ve 304 yanıtını birlikte okuyun

Sunucu bir görsele ETag: "v1" verir. Tarayıcı sonraki doğrulamada If-None-Match: "v1" gönderir. Sunucu temsilin değişmediğini belirlerse gövdeyi tekrar göndermeden 304 Not Modified dönebilir. Dosya değişmişse yeni gövde ve yeni doğrulayıcıyla 200 beklenir.

Bu yüzden 304 bir hata kodu gibi ele alınmamalı. Fakat değiştirdiğiniz içerik için eski ETag kullanılmaya devam ediyorsa dağıtımı ve başlıkları inceleyin. Ağ sekmesindeki “önbelleği devre dışı bırak” seçeneğiyle tarayıcıyı karşılaştırın. CDN’in kendi önbelleği aynı anda devrede kalabilir.

Yayınlarda dosya adını içerikle birlikte değiştirin

app.css dosyasını her sürümde aynı adla yayımlamak, eski tarayıcı önbelleğiyle yeni HTML’nin karşılaşmasına yol açabilir. Örneğin app.a1b2.css ve app.c3d4.css gibi içerikten türetilen isimler kullanırsanız her yeni dosya yeni bir URL alır. HTML için yeniden doğrulama, sürümlenmiş dosya için uzun tazelik süresi genellikle daha kolay yönetilir.

Bir düzeltmeyi doğrularken önce doğru HTML’nin yeni adı çağırdığını, sonra yeni dosyanın beklenen içerikle döndüğünü kontrol edin. DNS sonucu eski sunucuya işaret ediyorsa DNS geçişini de ayrı inceleyin.

HTTP başlıkları

Tarayıcınızın Astrotor’a gönderdiği istek başlıklarını inceleyin. Kendi sitenizin yanıt başlıklarını geliştirici araçlarının Ağ sekmesinde açın.

Aracı aç
KEŞFETMEYE DEVAM ET

Bir cevap daha burada.

Tüm araçlar
BİRLİKTE KEŞFEDELİM

İşine yaradıysa, paylaş.