HTTP caching nedir; Cache-Control header ne işe yarar?
Kısa cevap
HTTP caching, tekrar eden isteklerin yanıtlarının saklanıp kaynağa gitmeden bir ara katmandan ya da tarayıcıdan sunulmasıdır; sunucunun yükünü ve yanıt süresini azaltır. Bir yanıtın saklanıp saklanamayacağını ve ne kadar süre geçerli kalacağını Cache-Control (max-age, no-store, private gibi), Expires ve Pragma header'ları belirtir. TR7'de cache, HTTP vService'e Cache alanından atanan Cache profiliyle yapılır ve yalnızca Caching Rules koşuluna uyan istekler için çalışır (varsayılan kural yaygın statik dosya uzantılarıdır). TR7 isteği önce cache'te arar; bulursa (HIT) Kurum Servisine gitmeden yanıtlar, bulamazsa (MISS) isteği iletir ve uygun yanıtı Cache Timeout süresi kadar (varsayılan 1 saat) saklar. Varsayılan olarak Kurum Servisinin cache header'larına uyar; Ignore Response Headers bunları yok sayar. Cached(HIT) Header Name alanındaki header (varsayılan TRCACHE) her yanıta HIT ya da MISS değeriyle eklenir.
TR7'de Nerede Kullanılır
| Nerede | Alan / etiket | Ne için |
|---|---|---|
| Load Balancer → Profiles (L4-L7 Behavior Sets) → Cache | Caching Rules | Hangi isteklerin cache'leneceği; varsayılan kural path'in yaygın statik dosya uzantılarıyla bitmesidir |
| Aynı profil | Cache Timeout (varsayılan 1 saat), Max. Object Size (MB) | Saklama süresi ve saklanabilecek en büyük yanıt |
| Aynı profil | Ignore Response Headers, Ignore Request Headers (ikisi de varsayılan kapalı) | Kurum Servisinin ya da istemcinin cache header'larını yok sayma |
| Aynı profil | Ignore HTTP Method Standards (varsayılan kapalı) | GET ve HEAD dışındaki metotların da cache'lenmesi |
| Aynı profil | Ignore Host Header, Ignore Query, Dynamic Caching | Cache key'in hangi bilgilerden oluşacağı |
| Aynı profil | Cached(HIT) Header Name (varsayılan TRCACHE) | Yanıtın cache'ten (HIT) mi Kurum Servisinden (MISS) mi geldiğini gösterme |
| HTTP vService formu → Details | Cache | Cache profilini vService'e atama |
| Load Balancer → Load Balancer vService List → vService → Dashboard | Frontend Cache, Frontend Cache Hit Ratio | Cache'te aranan ve cache'ten karşılanan istek sayısı ile HIT oranı; panel yalnızca vService'e Cache profili atanmışsa görünür |
Sık Karıştırılan Noktalar
- "Cache profili atanınca bütün yanıtlar cache'lenir." Yalnızca Caching Rules koşuluna uyan istekler cache'ten aranır ve saklanır; Kurum Servisinin
Cache-Control: no-storeya daprivategibi yönergeleri, Ignore Response Headers açılmadıkça geçerlidir. - "TRCACHE header'ı yalnızca cache'ten gelen yanıtta bulunur." Header her yanıta eklenir; değeri Kurum Servisine gitmeden sunulan yanıtta HIT, Kurum Servisinden gelen yanıtta MISS'tir. Ayrıntı: Bir yanıtın cache'ten geldiğini nasıl anlarım (Cached(HIT) Header Name, varsayılan değeri TRCACHE)?
- "Kullanıcıya özel sayfalar da güvenle cache'lenebilir." Session içeriği taşıyan yanıtlar Caching Rules dışında bırakılır ve Ignore Response Headers bu yanıtlarda açılmaz: Kullanıcıya özel içeriğin yanlışlıkla cache'lenmesini nasıl önlerim?
Dokümantasyonda nasıl yapılır
İlgili sorular
- TR7 üzerinde cache yapabilir miyim; varsayılan ayarlar nelerdir?
- Bir yanıtın cache'ten geldiğini nasıl anlarım (Cached(HIT) Header Name, varsayılan değeri TRCACHE)?
- Kullanıcıya özel içeriğin yanlışlıkla cache'lenmesini nasıl önlerim?
- Uygulama güncellemesinden sonra eski içerik gelmeye devam ediyor; ne yapmalıyım?
