STATUS IS UPWEB SİTESİ OPTİMİZASYONU VİKİSİ
20Hızlandır
Performans ve teslimat / Hızlandır

Web Site Sahipleri için Tarayıcı Önbellekleme Rehberi

Tekrarlanan ziyaretlerde gereksiz indirmeleri önlemek için açık HTTP önbellek kuralları belirleyin; ancak ziyaretçileri eski sayfalara veya güvensiz, kişiselleştirilmiş içeriğe mahsur bırakmayın.

Web Site Sahipleri için Tarayıcı Önbellekleme Rehberi — GÖRSEL REHBER
OKU
7 dakika
KAYNAKLAR
6
YENİDEN DOĞRULA
2027-03-27
gözden geçirildi
Web performansı ve sürüm mühendisliği değerlendirme uzmanı
KISA CEVAP

Kararla başlayın.

Her tür URL için farklı bir önbellek kuralı kullanın. İçeriği o URL'de asla değişmeyen dosyalara — hash ile adlandırılmış JavaScript, CSS, fontlar ve resimler gibi — uzun bir tazelik ömrü verin. HTML ve diğer sürümlenmemiş yanıtlar için, tazelik önemliyse tarayıcının yeniden kullanımdan önce doğrulama yapmasını sağlayan bir politika verin. Bir varlık değiştiğinde her zaman yeni bir varlık URL'si yayınlayın; uzun önbellek süreleri, hâlâ taze olan kopyalar için güvenilir şekilde geri alınamaz.

Önce açık Cache-Control başlıklarıyla başlayın, sonra başlıkları ve tarayıcı davranışını bir hazırlık (staging) ortamında doğrulayın. Doğrulama-odaklı yanıtlarda ETag ve varsa Last-Modified ile eşleştirin. Kişiselleştirilmiş, hesap, ödeme (checkout) ve hassas yanıtları herkese açık sayfalardan ayrı ele alın. SIU bu çalışmayı proaktif bir kullanılabilirlik (uptime) optimizasyonu olarak kullanır: gereksiz origin işini azaltır ve önbellek kaynaklı sürüm (release) hatalarını, kullanılabilir bir siteyi bozup ziyaretçileri etkilemeden önce engeller.

GÖRSEL REHBER

Çalışmayı bir sistem olarak görün.

Bireysel taktiklere geçmeden önce makaledeki kararları bağlamak için bu haritayı kullanın.

SIUHızlandır
01Politikayı sunucuya değil kaynağa eşleyin
02Cache-Control terimlerini doğru kullanın
03Değiştirilemez varlıkları uzun ömre vermeden önce sürümlendirin
04HTML'i uzun önbellekleme yerine doğrulama ile güncel tutun
01

Politikayı sunucuya değil kaynağa eşleyin

Başlıkları değiştirmeden önce temsilci URL'lerin envanterini çıkarın: anasayfa, içerik sayfası, uygulama kabuğu, CSS, JavaScript, resimler, fontlar, API'ler, giriş, hesap, ödeme ve indirmeler. Her biri için yanıtın herkese açık mı yoksa kişiselleştirilmiş mi olduğunu, URL değiştiğinde baytların değişip değişmediğini ve düzeltmenin ziyaretçilere ne kadar hızlı ulaşması gerektiğini kaydedin.

Bu envanterden bir politika matrisi oluşturun. İçerik-adresli (content-addressed) herkese açık bir varlık ile sabit adreste bulunan HTML için farklı kurallar gerekir. Cache-Control olmayan yanıtlar yine sezgisel olarak önbelleğe alınabilir, bu yüzden açık kurallar test etmeyi kolaylaştırır.

Tazelik ömrü

Saklanan bir yanıtın yeniden kullanılabileceği süre; max-age bunu saniye cinsinden verir.

02

Cache-Control terimlerini doğru kullanın

Cache-Control, tarayıcılara ve paylaşılan önbelleklere bir yanıtın nasıl saklanacağı ve yeniden kullanılacağı konusunda talimat verir. max-age=N taze olduğu sürece yeniden kullanıma izin verir. s-maxage=N paylaşılan önbellekteki tazeliği belirler ve orada max-age'i geçersiz kılar; tarayıcılar s-maxage'i görmezden gelir. public herhangi bir önbelleğe izin verir; private tarayıcı önbelleklemesine izin verir ama paylaşılan önbellekte saklanmasını engeller.

no-cache depolamaya izin verir fakat yeniden kullanım öncesi origin doğrulaması gerektirir. no-store önbelleklerin yanıtı saklamamasını emreder, ancak bu eksiksiz bir gizlilik kontrolü değildir. must-revalidate, süresi dolmuş içeriğin servis edilmesinin kabul edilemez olduğu durumlarda kullanın; böylece kullanılabilir origin yoksa eski bir yedek yerine 504 dönebilir.

Genel no-store kullanımından kaçının

no-store saklamayı kaldırır; yalnızca gerçekten saklanmaması gereken yanıtlar için ayırın.

03

Değiştirilemez varlıkları uzun ömre vermeden önce sürümlendirin

Sürümlenmiş bir varlık URL'si içerik parmak izi veya sürüm içerir; ör. app.4f2c.js. Varlık baytları değiştiğinde farklı bir URL yayınlayın ve HTML referansını güncelleyin. Önbellek yeni bir kaynak görür, bu yüzden ziyaretçiler her tarayıcıya ulaşan bir invalidasyon olmadan yeni varlığı alır.

Tazelik ömrü boyunca değişmeyecek bir temsil için Cache-Control: max-age=31536000, immutable pratik bir desendir. immutable destekleyen istemcilere taze olduğu sürece koşullu yeniden doğrulama yapmamalarını söyler. Aynı adresteki değişken bir dosyaya yıl-aşırı max-age veya immutable uygulamayın. Önbellekteki HTML hâlâ bunlara referans verebileceğinden önceki fingerprint'li varlıkları saklayın.

HTML bir manifesttir

HTML hangi varlık URL'lerinin yükleneceğini seçer; bu yüzden sürüm sıralaması referans verilen nesli korumalıdır.

04

HTML'i uzun önbellekleme yerine doğrulama ile güncel tutun

HTML genellikle sabit, insan tarafından okunan bir URL'ye sahiptir ve içerik, varlık referansları, özellik bayrakları veya güvenlik duyuruları ile değişir. Muhafazakâr bir herkese açık HTML deseni, platformunuz bunları doğru üretebiliyorsa Cache-Control: no-cache ile ETag ve Last-Modified kullanmaktır. Tarayıcı gövdeyi depolar ama yeniden kullanım öncesi koşullu istek yapar; değişmemişse 304 Not Modified gövdesiz dönebilir.

ETag bir kaynak sürümünü tanımlar. Bir yanıt artık olduğunda tarayıcı bunu If-None-Match içinde gönderebilir; eşleşirse sunucu 304 döner, aksi halde yeni temsili gönderir. RFC yönergeleri mümkünse 200 yanıtında hem ETag hem Last-Modified kullanılmasını tercih eder. no-cache, Geri veya İleri (Back/Forward) gezinmede tarayıcının mutlaka doğrulama yapacağını garanti etmez; tarayıcı oturum geçmişi anlık görüntüsünü geri yükleyebilir.

Doğrulayıcı (validator) kalitesi

ETag, temsil değiştiğinde mutlaka değişmelidir; bunu originler ve dağıtımlar arasında test edin.

05

Herkese açık teslimatı kişiselleştirilmiş ve hassas yanıtlardan ayırın

CDN gibi paylaşılan bir önbellek bir yanıtı birden çok kullanıcı için yeniden kullanabilir. Hesap-özel HTML veya API verilerinin kullanıcılar arasında yeniden kullanılmasına izin vermeyin. Tarayıcıda yaşayabilecek kişiselleştirilmiş içerikler için private, no-cache mantıklı bir başlangıçtır: paylaşılan depolamayı engeller ve doğrulama gerektirir. Sadece Set-Cookie başlığı tek başına önbelleklemenin durmasını sağlamaz.

Saklanmaması gereken yanıtlar için no-store kullanın ve uygulama kodu, CDN kuralları, servis çalışanları (service workers), tarayıcı depolaması, loglar ve hata sayfalarını gözden geçirin. Başlıklar tek başına gizlilik, uyumluluk veya ödeme güvenliği programı değildir. Hassas akışları ve uygulanabilir gereksinimleri nitelikli güvenlik, gizlilik ve ödeme inceleyicilerine doğrulatın.

Yetkilendirme değişiklikleri

Giriş, çıkış, hesap değiştirme ve izin değişikliklerini sıcak (warm) tarayıcı ve CDN önbellekleri ile test edin.

06

Önbellek değişikliklerini geri alınabilir bir sürüm olarak devreye sokun

Önce değişiklik öncesi başlıklar ve gövde davranışı için temel durumu yakalayın. Hazırlık ortamında önce sürümlenmiş varlıkları dağıtın, sonra bunlara referans veren HTML'i yayınlayın ve önceden önbelleğe alınmış eski HTML'i yeni origin ile test edin. Hem doğrudan origin hem CDN yollarını kontrol edin. DevTools Network başlıkları istenen politikayı ve tekrar davranışını göstermelidir.

Varlık URL'leri, başlık kuralları ve konfigürasyon sürümünü içeren bir sürüm manifestosu tutun. Bir sürüm uyumsuz istemci dosyalarını birleştiriyorsa, uyumlu HTML ve uygulama davranışını geri döndürün; ancak yayınlanmış fingerprint'li bir dosyayı değiştirmeyin. HTML'i bilinen-iyi nesle yönlendirin ve önbellekteki HTML bunları isteyebildiği sürece her iki nesli de koruyun. Paylaşılan önbelleği temizlemek (purge) tarayıcıların taze bir yanıtı atmasını zorlayamaz.

Proaktif düzeltme

Başlık test hatalarını, varlık 404'lerini ve sürüm uyumsuzluklarını bir sonraki sürüm kontrol listesine düzeltilecek maddeler olarak ekleyin.

EYLEM / DOĞRULA

Pratik yapılacaklar rehberiniz.

  1. 01

    Yanıt sınıflarını envanterleyin

    Örnek URL'leri herkese açık veya kişiselleştirilmiş, değişken veya sürümlenmiş olarak sınıflandırın.

    DOĞRULA: HTML, varlıklar, API'ler, kimlik doğrulama, hesap, ödeme ve hata sayfalarını içerir.
  2. 02

    Mevcut başlıkları yakalayın

    Origin ve CDN'de Cache-Control, ETag, Last-Modified, Age, Vary ve durum kodunu kaydedin.

    DOĞRULA: Her örnek için bir değişiklik öncesi anlık görüntü (snapshot) var.
  3. 03

    Değişken varlıkları fingerprint'leyin

    Derleme, baytları değiştiğinde yeni bir varlık URL'si yayınlasın.

    DOĞRULA: Değişen bir varlık farklı bir URL ve HTML referansı üretiyor.
  4. 04

    Açık politikalar belirleyin

    Uzun ömürlü kuralları yalnızca değiştirilemez sürümlenmiş URL'lere uygulayın; sabit URL'ler için doğrulama-öncelikli politikalar kullanın.

    DOĞRULA: Başlık testleri amaçlanan politikayla eşleşiyor.
  5. 05

    Doğrulamayı test edin

    Koşullu istek sonrası değişmemiş bir dokümanın 304 döndüğünü ve değişmiş bir dokümanın yeni ETag ile 200 döndürdüğünü kontrol edin.

    DOĞRULA: Hazırlık (staging) izleri her iki yolu da gösteriyor.
  6. 06

    Gizlilik sınırlarını zorlayın

    İki hesap, çıkış, rol değişiklikleri ve hassas rotaları sıcak önbelleklerle test edin.

    DOĞRULA: Hiçbir kişiselleştirilmiş yanıt kullanıcılar arasında geçiş yapmıyor.
  7. 07

    Sürüm uyumluluğunu kanıtlayın

    Bir sonraki sürümden sonra önbellekteki önceki HTML'i yükleyin.

    DOĞRULA: Önceki ve mevcut HTML, referans verdikleri varlıkları 404 veya betik hatası olmadan yüklüyor.
  8. 08

    Geri alma prosedürünü belgeleyin

    İyi nesli, başlık sürümünü, sahibini ve eski varlıkların saklanma süresini kaydedin.

    DOĞRULA: Üretim dışı bir tatbikat, değiştirilemez bir URL'yi düzenlemeden bilinen-iyi nesli geri getiriyor.
TARTIŞMA KONULARI

Ödünleri karşılaştırın, özel verileri paylaşmayın.

Bu başlıkları ekibiniz veya site sahipleri topluluğuyla kullanın. Yöntemleri ve çıkarılan dersleri paylaşın; ancak kimlik bilgilerini, müşteri kayıtlarını veya kamuya açık olmayan altyapı detaylarını asla paylaşmayın.

  1. 01

    Sitenizde hangi URL sınıfları herkese açık, kişiselleştirilmiş, değiştirilemez veya sık değişen olarak sınıflandırılması en zor olanlar; bu kararı nasıl belgeliyorsunuz?

  2. 02

    Eski-HTML ve yeni-varlık uyumsuzluğunu ziyaretçi görmeden yakalamada en faydalı olan sürüm sıralaması testi hangisiydi?

  3. 03

    CDN, uygulama ve tarayıcı önbellek kurallarınız nerede örtüşüyor ve birleşik davranışın amaçlanan politikayla eşleştiğini kim doğrulamaktan sorumlu?

POPÜLER / YETKİLİ KAYNAKLAR

Kaynak materyalini açın.

IETFRFC 9111: HTTP Caching ↗

Tazelik, doğrulama, önbellek yönergeleri, invalidasyon ve hassas bilgi sınırlamaları hakkında açıklar.

İncelendi 2026-09-27
IETFRFC 8246: HTTP Immutable Responses ↗

İmmutable (değiştirilemez) önbelleklemenin tanımını, kapsamını ve bozulma (corruption) hususlarını tanımlar.

İncelendi 2026-09-27
MDN Web DocsHTTP caching ↗

Doğrulayıcılar, 304'ler, kişiselleştirme ve cache-busting üzerine pratik rehberlik sağlar.

İncelendi 2026-09-27
MDN Web DocsCache-Control header ↗

max-age, s-maxage, no-cache, no-store, private, public ve must-revalidate için referans.

İncelendi 2026-09-27
MDN Web DocsETag header ↗

Entity tag'ler (ETag), If-None-Match ve 304 doğrulama sürecini açıklar.

İncelendi 2026-09-27
web.devPrevent unnecessary network requests with the HTTP Cache ↗

Sürümlenmiş URL'ler, doğrulayıcılar, politikalar ve dağıtım hakkında pratik rehberlik sağlar.

İncelendi 2026-09-27

Kaynak politikası. Bu makale RFC'ler ve birincil teknik dokümantasyonları kullanır. Desteklenmeyen performans iddialarından kaçınır ve HTTP kurallarını platforma özgü yapılandırmalardan ayırır.

HIZLI AÇIKLAMALAR

Yaygın sorular.

no-cache, bir tarayıcının sayfayı saklayamayacağı anlamına mı gelir?

Hayır. no-cache saklamaya izin verir ancak yeniden kullanım öncesi origin ile başarılı bir doğrulama gerektirir. Bir yanıtın saklanmaması gerektiğinde yalnızca no-store kullanın; bunun da tek başına eksiksiz bir gizlilik güvencesi olmadığını unutmayın.

Her statik dosyaya bir yıllık önbellek ömrü verilmesi gerekiyor mu?

Hayır. Bir yıllık max-age sadece URL'nin o süre içinde baytlarının değişmeyeceği durumlar için uygundur; genellikle URL fingerprint'li veya sürümlenmiş olduğunda. Aynı-URL'de değişebilen dosyalar için daha kısa veya doğrulama-öncelikli politika gerekir.

Bir CDN purge işlemi tarayıcı önbellekleme hatasını düzeltebilir mi?

Paylaşılan yönetilen önbellek kopyasını kaldırabilir, ancak her tarayıcının taze bir yanıtı atmasını zorlayamaz. Yeni sürümlenmiş bir varlık URL'si yayınlayın ve HTML referanslarını güncelleyin; gerekirse uyumlu nesle geri dönmek için geri alma planını uygulayın.

Status Is UP Editorial Team · Uptime Enablement Editors

Web performansı ve sürüm mühendisliği değerlendirme uzmanı tarafından incelendi. Yayınlandı 2026-09-27; güncellendi 2026-09-30.