2014-11-20 58 views
5

Bu sorunun birkaç kez sorulduğunu biliyorum. Ama yine de kavram hakkında net değilim. biz/max-age başlığını sona eriyor kullanırsanızEtag ve Expires başlığı arasındaki fark nedir?

Expiry headers are used when you don’t even want client (and proxies/caches) to make a request to 
the server. In ETAG, the client will check with the server for the update, but in expiry 
headers, the client will know, when to expire the file and check for an update, till then it 
(browsers and proxies/caches) won’t bother server for checking the update. 

, ben is var SO ne birçok bloglar ve cevapları okuduktan sonra Yani temelde Hatta güncelleştirilmiş dosya için sunucuda kontrol etmeyeceği, derler. Bu yüzden yerel olarak test etmeyi düşündüm.

2 js dosyaları ve 1 resim dosyası dahil olmak üzere basit html dosyası üzerinde oluşturdum. IIS'de, Expires başlığını görüntü klasörü için 2 gün olarak ayarladı. Anladığım kadarıyla, görüntü dosyasını sunucudan bir kez aldıktan sonra, bir sonraki istek için, görüntü dosyasının değiştirilip değiştirilmediğini kontrol etmek için sunucuya bir istek göndermemelidir.

Ancak sahip olduğum her şey, sayfayı yenilediğimde sunucuya gönderilen bir istek görüyorum ve sunucu 304 not modified durumunu döndürüyor. Ama okuduğum özellikler/bloglara göre Sunucuya bir istek göndermemelidir.

Birisi lütfen açıklayınız. Eğer anlattığım için

enter image description here

cevap

3

  • O If-None-Match alan ve ETag değeriyle istek için 304 not modified ile yanıt vererek olması bekleniyor ETag eser olarak açıktır.

    şimdi, tarayıcı sunucudan bant genişliği ve zamana göre yeni bir görüntü almak yerine görüntü önbellekten yükleyecektir.

  • yeni bir istek önbellek süresi dolmadan önce gönderildi veya başka bir istek ilk etapta gönderilmemiş olması neden önbelleğe alma tarayıcınıza .That en devre dışı gibi görünüyor.

    Burada programlama İşte

    önbelleğe ve derinlemesine ETAG açıklayan bir başka harika article olan önbelleğe alma tarayıcınızda devre bulmak için açıklar harika article olduğunu.

Not:

gidiyorsun olasılıkla web sonra basit Etag yapılandırmaları barındırmak için yük dengeleyici ile birden çok sunucu kullanıyorsanız Genel konuşan alarak daha fazla bant genişliği mal olması Etag kendi başlığında ve tarayıcı önbelleğinin geçerli olup olmadığını kontrol eden bir amacı yoktur. (Her zaman geçersizdir)

0

Önemli olan şey söylediğin şey: Sayfayı yenile. Bu durumda tarayıcı size taze içeriği sağlamaya çalışmaktadır, böylece sunucuyla iletişim kurmak ve tüm kaynakları kontrol etmek için başka seçeneği yoktur. (Bu davranışı engelleyen, ancak yaygın olarak kullanılmayan ve kullanılmayan önbellek denetimi uzantısı immutable bulunmaktadır).

Tarayıcınızın, yeniden yükleme yapmadan önbelleklere saygılı davranışını görmek istiyorsanız, "standart sayfa girişi" ni kullanmanız gerekir. Sayfaya bir bağlantı takip edin veya başka bir sekme kullanın ve url çubuğuna sayfa URL'sini yazın ve enter tuşuna basın.

Önbelleklerin son kullanma süresine saygı duyar, bu nedenle belge bayat değilse önbellekten döndürülür. ETag kaynağının geçerliliğinin sona ermesi için geçerlilik süresi dolduysa (ve doğrulamadan sonra kaynak hala değiştirilemezse - 304 yanıtı)