Hızlı Şablon
İçerik Tipi & CDN
Cache Direktifleri
Ek Direktifler
Vary Header
Canlı Önizleme
Cache-Control
—
CACHE-CONTROL YAPILANDIRMASI
Direktif Referansı
public
CDN ve tarayıcı önbelleğe alabilir. Paylaşımlı içerik için.
private
Sadece tarayıcı cache’ler. CDN önbelleğe alamaz. Kullanıcıya özgü içerik.
no-cache
Cache’te tutulur ama her seferinde sunucu ile doğrulama yapılır (ETag/304).
no-store
Hiçbir şekilde cache edilmez. Hassas veriler için (banka, sağlık).
max-age
Tarayıcı bu süre boyunca sunucuyu sorgulamadan cache’i kullanır.
s-maxage
CDN için özel TTL. max-age’i override eder. Tarayıcı bunu yok sayar.
immutable
İçerik hiç değişmez. Tarayıcı yenileme sırasında bile sunucuya gitmez.
stale-while-revalidate
Süre dolarken arka planda yeniler, kullanıcıya eski içerik sunulur.
must-revalidate
Süre dolunca sunucu doğrulaması zorunludur. Stale içerik sunulamaz.
stale-if-error
Sunucu hata verirse CDN bu süre kadar eski içeriği sunar.
no-transform
CDN içeriği sıkıştırma veya dönüştürme yapmasın.
Vary: Accept-Encoding
Sıkıştırma formatına göre ayrı cache. Gzip/Brotli için gerekli.
Cache-Control, HTTP yanıt başlığı olarak hem tarayıcılara hem CDN’lere içeriğin nasıl önbelleğe alınacağını söyler. Doğru yapılandırma ile sayfa yükleme hızını artırabilir ve sunucu yükünü azaltabilirsiniz.
⚡ Statik Dosyalar
- ✦ CSS/JS: 1 yıl + immutable
- ✦ Hash’li dosya adı kullanın
- ✦ Resimler: 1 ay – 1 yıl
- ✦ Fontlar: 1 yıl + immutable
🔄 Dinamik İçerik
- ✦ HTML: no-cache veya kısa TTL
- ✦ API: içeriğe göre değişir
- ✦ Kullanıcıya özgü: private
- ✦ SWR ile geçiş süresi yumuşatın
🔐 Hassas İçerik
- ✦ no-store kullanın
- ✦ private + no-cache kombinasyonu
- ✦ CDN’i bypass edin
- ✦ HTTPS zorunlu
📋 Cache Geçersizleştirme
- ✦ Hash’li dosya adı (bundle.abc123.js)
- ✦ CDN purge API
- ✦ Surrogate-Key (Fastly/Cloudflare)
- ✦ Versiyonlu URL (?v=2)
Not: Cloudflare,
Cache-Control: no-cache başlığını varsayılan olarak yok sayabilir. Page Rule veya Cache Rule ile override edilmesi gerekebilir.