Tarayıcı Önbelleğini Kullanma
Site hızını arttırmanın ve sunucu yükünü azaltmanın en kolay yollarından biri, tarayıcı önbelleğini kullanmaktır. Tarayıcı önbelleği, web sitenizdeki kaynakları ziyaretçinin bilgisayarında depolar. Başka bir sayfayı ziyaret ettiklerinde veya sitenize daha sonra geri döndüklerinde, önbelleğe alınmış kopyasını ziyaretçinin bilgisayarından kullanarak, dosyaları sunucunuzdan değil bilgisayarından açacaktır. Tarayıcı ön belleğini kullanmak, bant genişliğinden ve sunucu yükünden tasarruf sağlar.
Tarayıcı önbelleğini ayarlamanın iki temel yolu vardır.
İlk adım, her kaynak türü için önbellek zaman dilimini ayarlamak üzere ExpiresByType kullanmaktır.
İkincisi ise Cache-Control kullanmaktır.
ExpiresByType
Tarayıcıyı önbelleğe almayı bu yöntem ile kullanmak için ExpiresByType'ı, ardından kaynak türünü ve önbellek zaman aralığını kullanabilirsiniz.
Code: Select all
##### Varsayılan süre sonunu optimize et
<IfModule mod_expires.c>
## Son kullanma kontrolünü etkinleştir
ExpiresActive On
## CSS ve JS dosyalarının son kullanım tarihi: İstekten 1 hafta sonra
ExpiresByType text/css "now plus 1 week"
ExpiresByType application/javascript "now plus 1 week"
ExpiresByType application/x-javascript "now plus 1 week"
## Görüntü dosyalarının son kullanım tarihi: İstekten 1 ay sonra
ExpiresByType image/bmp "now plus 1 month"
ExpiresByType image/gif "now plus 1 month"
ExpiresByType image/jpeg "now plus 1 month"
ExpiresByType image/jp2 "now plus 1 month"
ExpiresByType image/pipeg "now plus 1 month"
ExpiresByType image/png "now plus 1 month"
ExpiresByType image/svg+xml "now plus 1 month"
ExpiresByType image/tiff "now plus 1 month"
ExpiresByType image/x-icon "now plus 1 month"
ExpiresByType image/ico "now plus 1 month"
ExpiresByType image/icon "now plus 1 month"
ExpiresByType text/ico "now plus 1 month"
ExpiresByType application/ico "now plus 1 month"
ExpiresByType image/vnd.wap.wbmp "now plus 1 month"
## Font dosyalarının son kullanım tarihi: İstekten 1 hafta sonra
ExpiresByType application/x-font-ttf "now plus 1 week"
ExpiresByType application/x-font-opentype "now plus 1 week"
ExpiresByType application/x-font-woff "now plus 1 week"
ExpiresByType font/woff2 "now plus 1 week"
ExpiresByType image/svg+xml "now plus 1 week"
## Video dosyalarının son kullanım tarihi: İstekten 1 ay sonra
ExpiresByType application/x-shockwave-flash "now plus 1 month"
ExpiresByType x-world/x-vrml "now plus 1 month"
ExpiresByType video/x-msvideo "now plus 1 month"
ExpiresByType video/mpeg "now plus 1 month"
ExpiresByType video/mp4 "now plus 1 month"
ExpiresByType video/quicktime "now plus 1 month"
ExpiresByType video/x-la-asf "now plus 1 month"
ExpiresByType video/x-ms-asf "now plus 1 month"
</IfModule>
##### Bitti
Zaman dilimi, ziyaretçinin tarayıcısına kaynağın yerel önbelleğe alınmış kopyasını ne kadar süre kullanacağını söyler. İstediğiniz zamana ayarlayabilirsiniz. En yaygın olanları "now plus 1 day", "now plus 1 week", "now plus 1 month", "now plus 1 year" dır.
Cache-Control
İkinci yöntem, kaynak için özel bir başlık bildirmek için Başlık yönergesini kullanmaktır. Söyleyebileceğiniz gibi Header yönergesinin hayranıyım.
Cache-Control HTTP başlığını ayarlamak için buna benzer bir yapı kullanırsınız.
Code: Select all
##### Statik kaynaklar için 1 ay
<filesMatch ".(css|jpg|jpeg|png|gif|js|ico)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
Gördüğünüz gibi bu daha yoğun bir yöntemdir.
Max-age = 2592000, tarayıcıya dosyayı saniye cinsinden ne kadar süre önbelleğe alacağını söyler. 2592000 saniye yaklaşık bir aydır.
Sitenizi sıkıştırın
Sitenizi hızlandırabilmenin bir başka yolu da onu küçültmektir. Evet, resim boyutunu, dosya boyutunu ve dosya miktarını azaltabilirsiniz. İstemci tarayıcısına gönderdiğiniz dosyaları da sıkıştırabilirsiniz. Bu, sitenizin daha az veriyi daha hızlı aktarmasını sağlar.
.Htaccess dosyası aracılığıyla gzip'i etkinleştirmek zor değildir. Aşağıdaki kodla yapabilirsiniz
Code: Select all
##### Kaynaklar için gzip sıkıştırmasını etkinleştir
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
Bütün sunucular gzip'i hatasız işlemez. Bu yöntem sunucunuzda işe yaramazsa, yerine deflate kullanarak keşfetmek isteyebilirsiniz.
Code: Select all
##### Kaynakları sıkıştır
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
##### Set Header Vary: Accept-Encoding
<IfModule mod_headers.c>
<FilesMatch ".(js|css|xml|gz|html)$">
Header append Vary: Accept-Encoding
</FilesMatch>
</IfModule>
https://e-opencart.com/blog/opencart-si ... imizasyonu