İçeriğe atla
FerdiGidenby FerdiSoftBETA v2.4
Web Geliştirme

Tarayıcı Önbelleği: Cache-Control ve Sürümlü Dosya Adları

Tarayıcı Önbelleği: Cache Control ve Sürümlü Dosya Adları, Web Geliştirme alanında sıkça karşılaşılan ve doğru uygulandığında fark yaratan konulardan biri. Bu yazı konuyu 5 temel noktada ele alıyor, çalışan bir PHP örneği üzerinden ilerliyor, sonunda da uygulamada nelere dikkat edilmesi…

Ferdi GidenFerdi Giden 2 dk okuma 1
Tarayıcı Önbelleği: Cache-Control ve Sürümlü Dosya Adları
İçindekiler
  1. Tarayıcı Önbelleği: Cache-Control ve Sürümlü Dosya Adları nedir, neden önemlidir?
  2. Kritik noktalar
  3. Örnek kod
  4. Size ne kazandırır?
  5. Son söz

Tarayıcı Önbelleği: Cache-Control ve Sürümlü Dosya Adları, Web Geliştirme alanında sıkça karşılaşılan ve doğru uygulandığında fark yaratan konulardan biri. Bu yazı konuyu 5 temel noktada ele alıyor, çalışan bir PHP örneği üzerinden ilerliyor, sonunda da uygulamada nelere dikkat edilmesi gerektiğini özetliyor.

Tarayıcı Önbelleği: Cache-Control ve Sürümlü Dosya Adları nedir, neden önemlidir?

Her sayfa açılışında aynı CSS, JavaScript ve yazı tipi dosyalarını yeniden indirmek hem kullanıcıyı bekletir hem de sunucuyu yorar. Doğru Cache-Control başlıklarıyla bu dosyalar tarayıcıda bir yıl saklanabilir; dosya adresine eklenen sürüm bilgisi sayesinde de güncellemeler anında kullanıcıya ulaşır.

Kritik noktalar

  • Uzun ömür ve sürüm: Statik dosyalara bir yıllık max-age verin; dosya değiştiğinde adresi de değiştiği için tarayıcı yenisini indirir.
  • immutable: Bu yönerge, tarayıcının sayfa yenilemede bile dosyayı yeniden doğrulamaya çalışmasını engeller.
  • HTML için no-cache: no-cache "saklama" değil "kullanmadan önce sunucuya sor" demektir; HTML sayfaları her zaman güncel kalır.
  • ETag ve Last-Modified: Doğrulama gerektiren yanıtlarda sunucu 304 Not Modified döndürerek dosyayı yeniden göndermez.
  • Kişisel veriye dikkat: Oturum bilgisi içeren yanıtlarda private ya da no-store kullanın; ortak önbelleklerde saklanmasınlar.

Örnek kod

Teoriyi somutlaştırmak için kısa bir PHP örneğine bakalım:

// Dosya değiştikçe adresi de değişir: /css/site.css?v=1730355600
function varlik(string $yol): string
{
    $dosya = __DIR__ . '/public/' . ltrim($yol, '/');
    return '/' . ltrim($yol, '/') . (is_file($dosya) ? '?v=' . filemtime($dosya) : '');
}
?>
<link rel="stylesheet" href="<?= varlik('css/site.css') ?>">
<script src="<?= varlik('js/app.js') ?>" defer></script>
<?php
/* .htaccess (Apache / LiteSpeed):
<FilesMatch "\.(css|js|woff2|webp|avif|svg)$">
    Header set Cache-Control "public, max-age=31536000, immutable"
</FilesMatch>
*/

Örneği kendi projenize uyarlarken değişken adlarını ve yapılandırma değerlerini ortamınıza göre değiştirmeyi unutmayın.

Canlı sunucuda display_errors kapalı olmalı; hataları kullanıcıya göstermek yerine günlüğe yazdırın.

Size ne kazandırır?

Kısaca özetlemek gerekirse:

  • Bakımı kolay ve okunur bir kod tabanı sağlar
  • Farklı cihaz ve tarayıcılarda tutarlı sonuç verir
  • Ekip içinde ortak bir uygulama standardı oluşturur
  • Sayfa performansını ve kullanıcı deneyimini iyileştirir

Son söz

Bu yazı boyunca Tarayıcı Önbelleği: Cache-Control ve Sürümlü Dosya Adları konusunun temel taşlarını ve uygulamada dikkat edilmesi gerekenleri gördük. Özellikle Uzun ömür ve sürüm ve Kişisel veriye dikkat başlıklarını uygulamaya geçirmek iyi bir başlangıç olur.

İlgili içerikler:

Daha fazla uygulamalı içerik için Akademi derslerine ve blog yazılarına göz atabilirsiniz.

Paylaş:
Ferdi Giden

Yazar

Ferdi Giden @admin
Sistem YöneticisiDoğrulanmış GeliştiriciBeta KullanıcıFerdiSoft KatılımcısıDoğrulanmış ProfilGüvenlik Bilinci

PHP, MySQL ve Tailwind ile kurumsal yazılımlar geliştiriyor; FerdiSoft çatısı altında ERP, WMS ve SaaS çözümleri üretiyor.

Yorumlar 0

Yorum yapmak ve tartışmaya katılmak için giriş yapın. Rozetleriniz yorumlarınızda görünür.

Henüz yorum yok. İlk yorumu siz yazın!

Ücretsiz Teklif Al