Skip to content

September 18, 2010

12

Static İçerikler İçin etag Header Kullanımı

Apache Etag

Bu yazıda sunucumuza gelen istekleri bazı dosya formatlarına header etag ekleyerek cevaplamayı inceleyeceğiz.

Yanıt Başlığına Neler Ekler?

  • INode (düğüm numarası)
  • MTime (son değişiklik zamanı)
  • Size (dosya boyutu)
  • All (yukarıdakilerin hepsi)

Ne İşe Yarar ?

Bu özellik son zamanlarda page speed ve yslow ile sık sık gündeme gelmekte. FileETag (File Entity Tags) ‘ı bir dosyanın yanıt başlığına (headerına) eklendiğinde, tarayıcı ilgili dosyanın ikinci defa talep edilmesi durumunda sunucu kopyası ile boyut, son değişiklik gibi değerleri karşılaştırarak gereksiz ise sunucudan tekrar yüklemek yerine tarayıcı belleğinden okur.

Avantajı Nedir?

Özellikle birden çok sayfada ortak kullanılan dosyalar için (tema imajları, ortak js ler, ortak css ler vb.) kullanıldığında sunucuza yapılan HTTP Request lerini azaltmanıza ve dolayısıyla site bant genişliğinizin hafiflemesine yardımcı olur. Bunu yapmanız aynı anda sitenizin sayfa yüklenme hızına da büyük oranda katkı saylayacaktır (yeni Google algoritması bunu kontrol ediyor).

Örnek Kullanım

<FilesMatch "\.(gif|jpe?g|png|html|css|js)$">
FileETag INode MTime Size
</FilesMatch>

Yukarıdaki örnekte, sunucudan talep edilen gif, jpeg, jpg, png, html, css ve js dosyaları için yazının başında bahsettiğimiz üç tagı ekler.

Toplam 12 Yorum Yorum Yaz
  1. Oct 13 2010

    çok yararlı oldu teşekkürler.

    Reply
    • admin
      Oct 13 2010

      Rica ederim. Yazı biraz özet oldu fırsat olduğunda detaylandırmayı düşünüyorum.
      Eklenmesini istediğiniz bir bölüm varsa lütfen bildirin. Bu yazı yada incelenmesini istediğiniz konularıda talep edebiliriz. Biliyorsak biz ekleriz bilmiyorsak hep birlikte araştırıp yazı oluşturabiliriz.

      Reply
  2. Oct 19 2010

    Merhaba,
    Yazınız özetinde özeti olmuş aslında 🙂

    Php olan indeximde maximum performans için etag, cache, gzip aklıma ne gelirse herşeyi yapmaya çalışıyorum, bazı yabancı kaynaklara baktım fakat etag ile alakalı olarak asp tabanlı kodlara ulaşabildim, pek fazla teknik ingilizcem olmadığı içinde php ile alakalı olanlardan sonuca varamadım.
    etag kullanımı için header damı işlem yapılıyor, tam olarak hangi kodu eklemem lazım vb. gibi bilgileride verirseniz çok sevinirim.

    Şimdiden teşekkürler

    Reply
  3. admin
    Oct 19 2010

    Yazıyla ilgilendiğiniz için teşekkürler.

    Temelde header ile işlem yapılıyor. Yukarıdaki .htaccess dosyasıda dosyaların header kısmını dolduruyor. .htaccess dosyasına .php uzantısını eklemeyi deneyebilirsiniz ancak sunucunun nasıl davrandığına bakmak gerekebilir. Değişiklikleri gerçekten algılaması yada tersi sonuç olası.

    Eğer php ile yapmanız gerekiyorsa açıkçası bu kullanımını hiç denemedim. Çünkü hangi dosyayda etag la header göndermek istiyorsanız içeriğin boyutunu ve son değişiklik zamanını dönebilirsiniz header ile. Kesinlikle denemediğim birşey için yönlendirme yapmak istemiyorum ancak PHP kategorisi altında bu konuları ve fazlasını PHP ile nasıl yapacağımızı içeren bir yazı ekleyebiliriz.

    Ayrıca caching (file, db, memcache vb) konularındada yazılar ekleyeceğiz bunlarda işinize yarayacaktır.

    Unutmadan eklemek isterim etag CDN kullanımlarında tersi bir etki yaratabiliyor bunuda yazıyı güncellediğimizde anlatacağız. Sabrınıza teşekkürler 🙂

    Reply
  4. Oct 19 2010

    İlginiz için sağolun 🙂

    CDN ile ilgilide aslında gerçek manada işe yarar bilgi arıyordum, sitenize eklerseniz takipcisi olacağım kesin, şimdiden teşekkürler 🙂

    Reply
  5. admin
    Oct 19 2010

    Rica ederim ben teşekkür ederim.

    Evet CDN konusunda yazı yazmak istiyoruz hatta AWS ‘yi de anlatmak isiyoruz. CDN ‘i çalıştığım firma kullanıyor ancak makalede anlatacak kadar test örnekleri vermek çok zor. Yüzeysel bir anlatımla değinebiliriz oda çok yararlı olmaz gibi. Yinede anlatmaya calışacağız.

    Teşekkürler.

    Reply
  6. huseyin
    Sep 27 2011

    Merhaba öncelikle yazı için teşekkürler,

    bunları .htaccess dosyasın da mı yapılandırsak yoksa apache2.conf dosyasındamı ayrıca varnish-cache kullanıyorum varnish-cache kullanmamda bu yapılanların faydası olurmu?

    Teşekkürler.

    Reply
    • Oct 14 2011

      Server ayarlarında, virtual host ayarlarında ve .htaccess dosyalarında düzenleyebilirsiniz. Önerilen yöntem virtual host veya .htaccess üzerinden yapmaktır.

      “varnish-cache” testi yapmadık. Ancak response headerlardan kontrol edip siz karar verebilirsibiz.

      Reply
  7. samet
    Dec 27 2012

    bende şu şekilde bi kod bulmuştum fakat işe yaramadı şimdi sizin verdiğiniz kodu denicem

    Header unset ETag

    FileETag None

    ayrıca bu konu ile ilgili türkçe makale bulduğuma çok sevindim teşekkürler.Aslına bakarsanız mantığı kavradım ama gerekli değişiklikleri bulamamıştım bi türlü ve CDN konusuna değinmişiniz bu konuda destek sağlıyacak bi firma varsa buraya yazarmısınız bulduğum 3 tane yabancı firma var şuan türk firma varsa anlaşmam daha kolay olur

    Reply
  8. Süha Mete
    Aug 2 2013

    Eren adlı arkadaş php formatıyla ilgili şeyler demiş.Bu konuda gelişme var mı? Çünkü serverım .htaccess dosyasının özelliklerini sağlamıyor bana.Eğer ki bilgilerinizi genişletmiş ve cevabı biliyorsanız lütfen bana ulaşın.Teşekkürler şimdiden 🙂

    Reply
  9. gökmen kocaoğlu
    Dec 10 2013

    sevgili kardeşim blogger’da Tarayıcı önbellekleme özelliğini nasıl kullanabilirim.
    Anlatılanların çoğumda .htaccess dosyası’nın içine ekle deniliyor ama blogger’da bu işlem nasıl oluyor bir türlü bulamadım. Yardımcı olabilir misin. Şimdiden teşekkür ederim.

    Reply
  10. Batur
    Mar 1 2015

    Merhaba, ihtiyaç duyulan bir konu üzerinde paylaşımda bulunduğunuz için teşekkürler.

    Kodun nereye ekleneceği ile ilgili detayı konuya eklerseniz, yorumları okumayanlar için faydalı olacaktır.

    Kolay gelsin.

    Reply

Sizin fikriniz nedir? Lütfen aşağıdaki formu kullanarak yorum yapın.

(gerekli)
(gerekli)