Static İçerikler İçin etag Header Kullanımı
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.
çok yararlı oldu teşekkürler.
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.
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
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 🙂
İ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 🙂
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.
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.
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.
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
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 🙂
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.
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.