Yanıtlar:
Cache-Control
HTTP / 1.1'de tanıtıldı ve daha fazla seçenek sunuyor Expires
. Aynı şeyi başarmak için kullanılabilirler, ancak için veri değeri Expires
bir HTTP tarihidir, oysa Cache-Control
maks. Yaş göreli bir süre belirlemenize izin verir, böylece "sayfa istendikten X saat sonra" belirtebilirsiniz.
HTML Önbellek kontrolü çok benzer bir sorudur ve sorularınızın çoğuna cevap vermesi gereken bir önbellek eğitimine iyi bir bağlantısı vardır (örneğin, http://www.mnot.net/cache_docs/#EXPIRES ). Özetlemek gerekirse, Expires
görüntüler gibi statik kaynaklar ve Cache-Control
önbelleklemenin nasıl yapıldığı üzerinde daha fazla kontrole ihtiyacınız olduğunda önerilir .
CDN (Bulut Dağıtım Ağı) kullanıyorsanız, saniyeler içinde maksimum yaşta Cache-Control kullanmanızı öneririz. Örneğin Önbellek Kontrolü: maks. Yaş = 604800. Bu, başlangıç sunucunuza istek tepelerini önler: "Geçerlilik Sonu Çar, 30 Eki 20xx 04:37:07 GMT" ile tüm tarayıcılar aynı anda sizden istekte bulunur.
cache-control
. Bu yüzden neden kullanırken istek zirveleri olacağını anlamıyorumExpires:
Bu Google Developers makalesine göre, HTTP Önbelleğe Alma :
Önbellek Denetimi üstbilgisi, HTTP / 1.1 belirtiminin bir parçası olarak tanımlandı ve yanıt önbelleğe alma ilkelerini tanımlamak için kullanılan önceki üstbilgilerin (ör. Geçerlilik Süresi) yerini alıyor. Tüm modern tarayıcılar Önbellek Kontrolünü destekler, bu yüzden ihtiyacımız olan her şey budur.
Önbellek Denetimi HTTP / 1.1'de tanımlanmıştır, sunucudan istemciye tüm önbellekleme mekanizmalarını bu nesneyi önbelleğe alıp alamayacaklarını söyler. Saniyeler içinde ölçülür: Cache-Control: max-age=3600
.
Expires
Başlık alanı yanıtı bayat kabul edilir ve bundan sonra tarih / zaman verir. Geçerlilik süresi değeri bir HTTP güncel zaman damgası geçerli: Expires: Tue, 18 Jul 2017 16:07:23 GMT
.
Yanıt Cache-Control
, max-age
yönerge içeren bir alan içeriyorsa , alıcının Expires
alanı yoksayması GEREKİR .
Heroku devcenter'ın bu konuda mükemmel bir makalesi var.
Ondan alıntı yaparak,
Cache-Control üstbilgisi istemci tarafı önbelleğe almayı açarken ve bir kaynağın maksimum yaşını ayarlarken, Expires üstbilgisi, kaynağın artık geçerli olmadığı belirli bir noktayı belirtmek için kullanılır.
CC'nin özel / genel seçenekleri dışında hiçbir fark göremiyorum. "Erişim artı 1 yıl / ay / hafta / gün" gibi Expires kullanıldığında, CC'nin yaptığı gibi çalışır.
Hala ilgileniyorsanız, bu öneriyi doğrudan google'ın erkek çocuklarından bırakıyorum. https://developers.google.com/speed/docs/insights/LeverageBrowserCaching Önbellek Denetimi'nden önce Geçerlilik Süresi'ni tercih ediyorlar