Expires Headers, sunucular tarafından belirlenmiş dosyaları, tarayıcıların önbelleğinden alınıp alınmaması gerektiğini belirten bir fonksiyondur. Expires Headers’ın amacı, sunuculardan indirilen dosyaların yüklerinin hafifletilmesi ve sunuculara yönelik HTTP isteklerinin azaltılmasıdır. 

Bu işlemin önemli bir bileşeni olan web tarayıcıları da, kullanıcının bir web sitesi ziyareti sırasında, gerekli olan dosyaların indirilmesi ve sunucularla kurulan iletişimden sorumludurlar. Tarayıcılar sonraki adımda, web sitesinin görüntülenmesi için mevcut dosyaları derleyerek işleme alırlar. 

Web sitelerinde barındırılan grafikler ve içerikler genişledikçe, cihaz ve sunucu arasında gerçekleşen dosya aktarımı da artmaktadır. Add Expires Headers, tarayıcıların en sık kullanılan dosyalarının önbelleğe almasını sağlayan fonksiyon olarak tanımlanabilir. Add Expires Headers çözümü ise “.htaccess” dosyasına belirlenmiş kod dizilimlerinin eklenmesi ile sağlanmaktadır.

Add Expires Headers Neden Önemlidir?

Expires Headers fonksiyonu, web sayfalarının, önbelleğine alınmış sürümlerinin, sunulabilir durumlarını tarayıcı tarafından bilinmesini sağlamaktadır. Add Expires Headers fonksiyonunun avantajları ise aşağıdaki şekilde sıralanabilir.

  • Sunucu yüklerinin azaltılması.
  • Web sayfalarının yüklenme sürelerinin kısaltılması.
  • Maliyet ve fayda oranlarının yükseltilmesi.
  • Erişimin kesintisiz sağlanması.

Add Expires Headers, sunucu ve tarayıcı arasında gerçekleşen iletişim süresini kısaltarak, HTTP isteklerini azaltır, buna bağlı olarak da sitelerin performansı olumlu yönde etkilemiş olur. Add Expires Headers ayrıca, önbellek dosyalarının tekrar kullanılması ile kullanıcılar için indirilen dosya miktarlarının azaltılmasını sağlamaktadır. Kullanıcılar, herhangi bir web sitesini ziyaret ettikleri sırada, tarayıcılar siteye ait dosyaları yükleyerek, önbelleklerine kaydederler. Bir kullanıcı aynı web sitesini yeniden ziyaret ettiğinde ise siteye ait dosyaların tekrar yüklenmesine gerek kalmamaktadır. Add Expires Headers, siteye ait dosyaların indirildikten sonra saklanması için tarayıcılara komut iletir. Add Expires Headers kullanımının önemi özetle, bilgisayarlar ile web siteleri arasındaki işlem trafiğini azaltarak, önbellekte depolanmış olan verilerin kullanılmasını amaçlamak şeklinde ifade edilebilir.

blank

Add Expires Headers Çalışma Sistematiği

Expires Headers fonksiyonu, oldukça basit bir çalışma sistematiğine sahiptir. Add Expires Headers ile belirlenmiş bir dosyanın tarayıcının önbelleği içerisinde ne kadar süre boyunca saklanması gerektiği bildirilir. Bu işlem ile kullanıcılar aynı siteyi ziyaret ettiklerinde, tekrar tüm dosyaların yüklenmesini beklemezler. Add Expires Headers fonksiyonu ile web sitelerinin yükleme sürelerinin kısaltılması sağlanmaktadır. Expires Headers başlıkları, belirlenmiş dosyalara ya da dosya türlerine göre ayarlanmaktadır. Tarayıcının web sitesini ziyaret ettiği sırada, belirlenmiş dosyaların ne zaman indirildikleri görülebilmektedir. Add Expires Headers ‘ın kullanım amacı, web sitelerinde sabit olarak kalan öğelerin, son görüntülenme zamanlarının belirlenmesidir. Web sitelerinde genellikle sabit olarak kullanılan formatlar ise aşağıdaki şekilde sıralanmaktadır.

  • Images Dosyaları
  • Video Dosyaları
  • Font Dosyaları
  • XML Dosyaları
  • Favicon
  • JavaScript Dosyaları
  • CSS Dosyaları
blank

Add Expires Headers Nasıl Eklenir?

GTmetrix, Google PageSpeed gibi web sitesi ölçüm araçlarında sıkça karşılaşılan sorunlardan biri de Add Expires Headers hatası olmaktadır. Add Expires Headers  çözümü, FTP programları yardımıyla, web sitesinin FTP bilgilerine giriş yapılarak, aşağıda eklenen kod dizilimin .htaccess dosyasına yüklenmesi ile sağlanmaktadır.

# Enable expirations

ExpiresActive On

# Default directive

ExpiresDefault “access plus 1 month”

# My favicon

ExpiresByType image/x-icon “access plus 1 year”

# Images

ExpiresByType image/gif “access plus 1 month”

ExpiresByType image/png “access plus 1 month”

ExpiresByType image/jpg “access plus 1 month”

ExpiresByType image/jpeg “access plus 1 month”

# CSS

ExpiresByType text/css “access 1 month”

# Data interchange

ExpiresByType application/json “access plus 0 seconds”

ExpiresByType application/xml “access plus 0 seconds”

ExpiresByType text/xml “access plus 0 seconds”

# Javascript

ExpiresByType application/javascript “access plus 1 year”

# Favicon and cursor images

# HTML components (HTCs)

ExpiresByType text/x-component “access plus 1 month”

# HTML

ExpiresByType text/html “access plus 0 seconds”

# Manifest files

ExpiresByType application/x-web-app-manifest+json “access plus 0 seconds”

ExpiresByType text/cache-manifest “access plus 0 seconds”

# Media

ExpiresByType audio/ogg “access plus 1 month”

ExpiresByType image/gif “access plus 1 month”

ExpiresByType image/jpeg “access plus 1 month”

ExpiresByType image/png “access plus 1 month”

ExpiresByType video/mp4 “access plus 1 month”

ExpiresByType video/ogg “access plus 1 month”

ExpiresByType video/webm “access plus 1 month”

# Web feeds

ExpiresByType application/atom+xml “access plus 1 hour”

ExpiresByType application/rss+xml “access plus 1 hour”

# Web fonts

ExpiresByType application/font-woff “access plus 1 month”

ExpiresByType application/vnd.ms-fontobject “access plus 1 month”

ExpiresByType application/x-font-ttf “access plus 1 month”

ExpiresByType font/opentype “access plus 1 month”

ExpiresByType image/svg+xml “access plus 1 month”

Yukarıda belirtilen kodlarda yer alan “1 month” ya da “1 year” süreleri, web sitesine ait sabit verilerin, son görüntülenme zamanlarını ifade etmektedir.

Önbelleğe Alma Nedir? Neden Önemlidir?

Önbellek, geçici veri kümelerinin depolandığı, yüksek hızdaki katmanlardır. Önbelleğe alma (Caching) ise daha önceden alınmış ya da hesaplanmış olan verilerin, daha verimli kullanılması için oluşturulan fonksiyonlardır. Önbelleğe alma işlemleri, belirlenmiş verilere bir sonraki site ziyareti sırasında, daha hızlı erişilmesini sağlamaktadır. Önbellek içerisinde bulunan veriler RAM gibi donanımlar tarafından saklanır. Verilere erişim sağlamak için, yazılımlar üzerinden bağlantı kurulmaktadır. Önbelleğe alma işlemlerinin temel amacı, depolama alanlarına erişim gereksinimlerini azaltarak, verilere erişim performanslarının arttırılması yönündedir. Önbelleğe alma (Caching) sisteminin birçok avantajı bulunmaktadır. Bunlar;

  • Uygulama performanslarının arttırılması.
  • Veritabanı maliyetlerinin düşürülmesi.
  • Çıkış verilerinin yüklerinin azaltılması.
  • Performansın ölçülebilir oranda yükseltilmesi.
  • Veritabanına ait bağlantı noktalarının ortadan kaldırılması.
  • Veri okuma verimliliğinin yükselmesi olarak belirtilmektedir.

Add Expires Headers fonksiyonu da, tarayıcılarda önbelleğe alınan verilerin, kullanıcılara sunulup sunulmayacağını belirtmektedir. Logolar, tasarım renkleri gibi sabit veriler, Add Expires Headers ile kullanıcıların siteye çok daha hızlı erişmesine ve HTTP isteklerinin azaltılmasına yardımcı olmaktadır.

blank

Verileri Önbelleğe Alma Türleri Nelerdir?

Sunucu yüklerinin azaltılması amacıyla, görsel, nesne, CSS ve JavaScript dosyaları gibi site verilerinin geçici sürelerle saklanma işlemlerine Önbelleğe alma denilmektedir. Önbelleğe alma alternatifleri ise aşağıda sıralanmaktadır.

Veritabanının (Database) Önbelleğe Alınması

Web sitelerinde kullanılan veri tabanlarının hızları ve işlevsellik verimliliği, sitenin genel performansını etkileyen unsurlardandır. Veritabanlarının önbelleğe alınması, uygulama performanslarını etkileyen, arka uçlarda yer alan veritabanlarından sağlanan veri iletişim hızlarını yükseltmektedir. Gecikmeleri minimum seviyeye çeken bu uygulama, web siteleri için uygulanması gereken yöntemlerden biri olarak belirtilmektedir.

İçerik Dağıtım Ağının (CDN) Önbelleğe Alınması

Web sitesi trafiğinin lokasyon bazlı dağıtılması durumlarında, siteye ait altyapının dünyanın her yerinde çoğaltılarak kullanılması her zaman mümkün olmayabilir. CDN (Content Delivery Network), HTML, CSS ve JavaScript gibi sabit içeriklerin önbelleğe alınma işlemlerinde kullanılmaktadır. Bu şekilde, web sitesini ziyaret eden kullanıcıların daha yakın bir konuma taşınarak, bekleme sürelerinin azaltılması hedeflenmektedir.

DNS’leri Önbelleğe Alma

İnternet üzerinde gerçekleştirilen Domain sorguları sırasında, tanımlı Domaine bağlı IP adresinin çözülmesi için, DNS önbellek sunucuları üzerinden sorgu yapılmaktadır. DNS önbelleği, ISP (Internet Service Provider) İnternet Servis Sağlayıcı ve DNS sunucuları aracılığıyla, işletim sistemleri de dahil, pek çok farklı düzeyde işlem görmektedir.

Oturum Yönetimlerinin Önbelleğe Alınması

HTTP oturumları, web sitesinin kullanıcılarının giriş bilgilerini, daha önce görüntülenme süreçlerini, alışveriş izlerini kapsayan bir dizi bilgiyi içermektedir. Kullanıcılara ait tercihlerin bilinmesi ve hatırlanması, kullanıcı deneyimini yükselterek, HTTP oturumlarını yönetmeyi ve kullanıcının daha fazla memnun kalmasını sağlamaktadır.

API lerin Önbelleğe Alınması

Web sitelerinin birçoğunun API (Application Programming Interface)  yani Uygulama Programlama Arayüzü üzerinde kurulduğu görülmektedir. API’ler, kullanıcıların istekleri doğrultusunda, veritabanları ile istek bağlantıları kurmaktadır. API sonuçlarını önbelleğe alarak, kullanıcı tarafına döndürülmesi, veritabanı yüklerini azaltmak da, hızın ve performansın artmasını sağlamaktadır.

Cloud Sistemlerini Önbelleğe Alma

Cloud (Bulut) sistemlerinde barındırılan uygulamaların, bir takım verilere erişim için kuruma ait veritabanına ulaşması gerekmektedir. Kuruma ait verilerin, bulut sistemlerinde önbelleğe alınması ise veri akışının genel performansını arttırmaktadır.

Web Önbelleğe Alma

Bir web sitesini ziyaret eden kullanıcı için, içerikler sunulurken, görüntülerin, HTML belgelerinin, videoların ve diğer tüm verilerin önbelleğe alınması ile disklerin okunması ve sunucuların yüklerinin azaltılması mümkün olmaktadır. Hem sunucu hem de kullanıcı taraflı önbellekleme işlemlerinde, web sunucu yanıtları tutularak, sunucuların gecikmelerinin engellenmesi için Proxy ’lerden yararlanılmaktadır. Kullanıcı taraflı önbellek işlemlerinde ise daha önce ziyaret edilen web sayfaları önbelleğe aktarılmaktadır.

Genel Önbellek

Verilere ya da veri gruplarına bellekten erişim sağlamak, SSD (Katmanlı Hal Sürücüsü) üzerinden ve disklerden veri erişimine göre daha hızlı yapılmaktadır. Bu sistem, bağımsız şekilde işleyen veritabanı olarak, bellek içerisindeki anahtarlama / değerleme depolarını kullanarak gerçekleştirilmektedir. Sistem ile önbellek içerisinde yer alan veriler kullanılırken hızın artması, maliyetlerin düşürülmesi, verimliliğin yükseltilmesi sağlanmaktadır.

Entegre Önbellek

Daha sık erişim sağlanan verilerin, kaynak veritabanlarından otomatik şekilde önbelleğe alınması, entegre önbellek ile mümkün olmaktadır. Veritabanına gelen taleplerin yanıtlanması için entegre önbellek kullanılır ve istek gecikmelerinin önüne geçilir. Veritabanı CPU ve bellek kullanımları minimum seviyeye çekilerek, veritabanı performansı yükseltilir.