Güvenilir HTTP önbellekleme, yanıtı kimin ne kadar süre yeniden kullanabileceğini ve güncelliğin nasıl doğrulanacağını belirleyerek başlar; kopyalanmış karmaşık başlıkla değil.
RFC 9111 önbellek davranışını tanımlar; tarayıcı ve yönetilen önbellekler operasyon denetimleri ekler. Yanıt saklanıp her kullanımda doğrulanabilir, belirli süre taze kalabilir veya hiç saklanmayabilir. Doğru politika URL'nin sürümlü olup olmadığına, gövdenin kişiselleştirilmesine ve kaynağın doğrulayıcı üretmesine bağlıdır.
Tazelik ve doğrulama farklı sorunları çözer
Taze yanıt kaynağa gitmeden kullanılabilir. Bayat yanıt ETag/If-None-Match veya Last-Modified/If-Modified-Since ile doğrulanıp değişmemişse 304 alabilir. Cache-Control: no-cache saklamaya izin verir fakat ilgili kullanımda yeniden kullanmadan doğrulama ister; no-store yanıtın saklanmamasını söyler. Adları kolayca yanlış yorumlanır.
Statik dosyayı umutla temizlemek yerine sürümleyin
Dosya URL'si içeriğiyle değişiyorsa, örneğin app.4f3a.js, uzun tazelik ve immutable kullanılabilir. Yeni dağıtım yeni URL'yi gösterirken eski belge eski dosyayı yükleyebilir. İçeriği aynı URL altında değişen HTML'e bunu uygulamayın; istemci tazelik bitene kadar eski sayfayı korur.
Kişiselleştirilmiş yanıtı koruyun
Private, yanıtı paylaşılan ara önbellek yerine özel önbelleğe yönlendirir; şifreli veya gizli anlamına gelmez. Kimlik doğrulanmış HTML ve API için çerez, yetkilendirme ve anahtar açıkça incelenmelidir. Vary temsili seçen istek başlıklarını bildirir; çok çeşitli başlıklarda kullanmak önbelleği parçalayabilir ve uygulama kimliğini yine kaçırabilir.
İstek dizisinin tamamını doğrulayın
İlk yanıtı, tazeyken tekrarı ve zorunlu ya da doğal doğrulama sonrasını inceleyin. Age, Cache-Control, ETag, Last-Modified, Vary ve durumu kaydedin. Anonim ve giriş yapılmış durumu ayrı deneyin. CDN temizliği HTTP'nin tanımladığı genel silme yöntemi değil ürün operasyonudur; doğruluğu acil temizliğe bağlamayın.
Başlangıç önbellek matrisi
| Yanıt | Tipik başlangıç | Doğrulama |
|---|---|---|
| Hash'li JS/CSS/görsel | public, uzun max-age, immutable | Bayt değişince URL değişir |
| Herkese açık HTML | no-cache ve doğrulayıcı | Değişmeyen temsilde 304 oluşur |
| Kısa ömürlü açık API | Kısa tazelik ve doğrulayıcı | Paylaşılan anahtar gerçek varyantı içerir |
| Kişiselleştirilmiş yanıt | Analiz sonrası private/no-cache veya no-store | Kullanıcılar arasında paylaşım yoktur |
Uygulama incelemesi
- Her yanıtı hedef kitle ve değişebilirliğe göre sınıflandırın.
- Her yanıt için açık politika verin.
- Yararlı yerde doğrulayıcı kullanın.
- Vary'ı gerçek temsil boyutlarıyla sınırlayın.
- Tarayıcı, CDN ve kaynak sınırlarında istek dizisini test edin.
Örnekler 4 Eylül 2026'da RFC 9111 ve MDN'e göre gözden geçirildi. Bunları politika deseni sayın; kullanılan tarayıcı, çatı ve yönetilen önbelleğin gerçek davranışını ayrıca doğrulayın.
