Tarayıcı önbellekleme nasıl yapılır önbellekleme nasıl kapanır

Öncelikle tarayıcı önbellekleme nedir onla başlayalım.

Tarayıcı önbellekleme browser cache, leverage browser caching ve expires headers olarak bilinir.Ziyaretçileriniz sitenize bir browser aracılığı ile bağlantı kurmaktadırlar.Browser bir sayfayı yada bir client side taraflı bir objeyi yüklediğinde bu objenin ne kadar süreyle kendi önbelleğine alacağını on tarayıcı önbellekleme ile söyleyebilirsiniz.

Tarayıcı önbellekleme ile sitenize daha önceden giriş yapmış bir ziyaretçinin tekrar websitesi kaynaklarını yeniden yeniden indirmemesini sağlarsınız.Bu objeler tarayıcı önbelleğinden yükleneceği için sitenizin hız ve performansı arttarak trafik harcamanız da düşer.

Browser Cache uygulaması ile işlem sonrası sitenize daha az kaynak isteği geleceğinden Apache ‘ye gelen sorgularda da tasarruf sağlanır.Bu, Apache servisine gelen sorguları düşereceğinden CPU kullanımının düşmesi gibi olumlu sonuçlar da doğuracaktır.

Dosya ve Kaynaklar

Sitenizde önbellekleme yapılabilecek ne tür kaynaklar var bunları belirleyerek hangi kaynağın ne kadar süreyle önbellekleğe aldıracağınıza karar verir.

a: Web site script ve font dosyaları (css|js|woff|eot|ttf).
b: Resim dosyaları (jpg|jpeg|gif|png|ico).
c: Flash dosyaları (swf|flv).
d: Yayınladığınız dökümanlar (pdf|ppt|doc|docx|xls).
e: Medya dosyalarınız (mpeg|mov|mp3|wmv)

Sayfalar

Sayfalarınızın statik veya dinamik yapısına göre (html|htm|txt) içeriklerinizi planlayın.

Saniye cinsinden bazı hesaplamalar ;

1 gün = 86400 saniye.
1 hafta [7gün] = 604800 saniye.
# 31 Gün üzerinden hesap ettim.
1 ay [31gün] = 2678400 saniye.
3 ay [93gün] = 8035200 saniye.
6 ay [186gün] = 16070400 saniye.
12 ay [372gün] = 32140800 saniyen.

Mod Expires Kullanımı

Mod_Expires bir Apache modulüdür ve genelde hosting sunucularının %99’unda kuruludur.

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault “access plus 2678400 seconds”
ExpiresByType text/html “access plus 600 seconds”
ExpiresByType text/css “access plus 604800 seconds”
ExpiresByType text/javascript “access plus 216000 seconds”
ExpiresByType application/xhtml+xml “access plus 600 seconds”
ExpiresByType application/javascript “access plus 216000 seconds”
ExpiresByType application/x-javascript “access plus 216000 seconds”
ExpiresByType application/pdf “access plus 216000 seconds”
ExpiresByType application/x-shockwave-flash “access plus 216000 seconds”
ExpiresByType image/x-icon “access plus 2592000 seconds”
ExpiresByType image/jpeg “access plus 2592000 seconds”
ExpiresByType image/jpg “access plus 2592000 seconds”
ExpiresByType image/png “access plus 2592000 seconds”
ExpiresByType image/gif “access plus 2592000 seconds”
</IfModule>

Mod Headers Kullanımı

Mod_Expires’a ek olarak Mod_Headers ayrıca kullanılmalıdır.En iyi sonuçlar için iki modülü birden kullanın.

<ifmodule mod_headers.c>
# Proksi Gecerli
Header append Vary User-Agent env=!dont-vary
# Web Sayfasi Dosyalari
<filesmatch “.(css|js|woff|ttf|eot)$”>
Header set Cache-Control “max-age=2678400, public”
</filesmatch>
# Resimler
<filesmatch “.(jpg|jpeg|gif|png|ico)$”>
Header set Cache-Control “max-age=2678400, public”
</filesmatch>
# Sayfalar
<filesmatch “.(html|htm)$”>
Header set Cache-Control “max-age=7200, public, must-revalidate”
</filesmatch>
# Belgeler ve Dokuman
<filesmatch “.(pdf|ppt|doc|docx|xls)$”>
Header set Cache-Control “max-age=86400, public”
</filesmatch>
# Medya Icerikleri
<filesmatch “.(mpeg|swf|flv|mov|mp3|wmv)$”>
Header set Cache-Control “max-age=86400, public”
</filesmatch>
</ifmodule>

Bazı sayfaları özel olarak hariç tutulmak istenirse ;

<FilesMatch “.(pl|php|cgi|spl|scgi|fcgi)$”>
Header unset Cache-Control
</FilesMatch>

Yukardaki işlemler sonucu Önbellekelmeyi açabilirisiniz şimdi kapatmak için yapmamız gerekenlere bakalım :

Htaccess :

<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control “max-age=0, no-cache, no-store, must-revalidate”
Header set Pragma “no-cache”
Header set Expires “Wed, 11 Jan 1984 05:00:00 GMT”
</ifModule>

Meta Tag :

<meta http-equiv=”cache-control” content=”max-age=0″ />
<meta http-equiv=”cache-control” content=”no-cache” />
<meta http-equiv=”expires” content=”0″ />
<meta http-equiv=”expires” content=”Tue, 01 Jan 1980 1:00:00 GMT” />
<meta http-equiv=”pragma” content=”no-cache” />

 

Read More