Apache 2.2.3'ü “son değiştirilen” vb.


9

ve tarayıcıya bir nesneyi (ve / veya bir sayfayı ... sitedeki her şeyi) yeniden yüklemesini söylemek için yalnızca son ziyaret süresinden beri değiştirilirse ??? htaccess, httpd.conf ... davam için hazır bir direktif hakkı var mı? Çok teşekkür ederim

Yanıtlar:



5

Last-ModifiedÜstbilgilerin zayıf önbellek üstbilgileri olduğunu unutmayın . Geçerli tercih, Cache-Controlüstbilgileri kullanmaktır .

Google'ın bu konuda iyi bir makalesi var.

Önbelleği Optimize Edin

Son kullanma tarihi ve Önbellek Kontrolü: maks. Yaş. Bunlar, bir kaynağın "tazelik ömrünü", yani tarayıcının web sunucusundan yeni bir sürümün olup olmadığını kontrol etmeden önbelleğe alınmış kaynağı kullanabileceği süreyi belirtir. Bunlar, koşulsuz olarak uygulanan "güçlü önbellek üstbilgileri" dir; yani, ayarlandıktan ve kaynak indirildikten sonra, tarayıcı, son kullanma tarihine veya maksimum yaşa ulaşılana kadar kaynak için herhangi bir GET isteği göndermez.

Son Değiştirme ve ETag. Bunlar, tarayıcının dosyaların aynı olup olmadığını belirlemek için kontrol ettiği kaynakla ilgili bazı özellikleri belirtir. Son Değiştirilen başlığında, bu her zaman bir tarihtir. ETag başlığında, bu bir kaynağı benzersiz şekilde tanımlayan herhangi bir değer olabilir (dosya sürümleri veya içerik karmaları tipiktir). Last-Modified, tarayıcının öğeyi önbellekten alıp almamayı belirlemek için bir sezgisel tarama uyguladığı için "zayıf" bir önbellek başlığıdır. (Buluşsal yöntemler farklı tarayıcılar arasında farklıdır.) Ancak, bu üstbilgiler, kullanıcı sayfayı açıkça yeniden yüklediğinde koşullu GET istekleri vererek tarayıcının önbelleğe alınmış kaynaklarını verimli bir şekilde güncellemesine olanak tanır. Koşullu GET'ler, kaynak sunucuda değişmedikçe tam yanıtı döndürmez ve bu nedenle de tam GET'lerden daha düşük gecikme süresine sahiptir.

Ben kullanarak ya tavsiye Cache-Controlveya Expiresonlar güçlü önbellek başlık olduğu beri gerektiği gibi başlıkları. Bazı sistemler Son Değiştirilme tarihlerini yok sayar.

Daha sonra başlıkları kontrol etmek için curlveya http://redbot.org gibi bir araç kullanabilirsiniz .


2
FWIW: "zayıf" Google'ın oluşturduğu bir şey. Expiressüresi dolmayan kaynaklar için tamamen uygun olmayan bir başlıktır. Bazı kaynaklar değiştirilebilir, ancak bazı son kullanma tarihlerinde değiştirilemez. Google'ın amacı, Last-Modifiedkoşullu bir GET gerektirirken Expirestarayıcı önbelleğinin GET'i tamamen atlamasına izin verir.
Dancrumb

1
Terimi zayıf basitçe semantik. Mesele şu ki Last-Modified, diğer önbellek yönergelerinin yokluğunda üstbilgilerin kullanılması önbellek dönemini HTTP istemcisine bırakır. Bir kaynak tarihten bu yana değiştirilmemişse Last-Modified, kaynak yeni kabul edilmelidir. Buna karşılık, bir Expiresveya Cache-Controlüstbilgi kullanılırken orijin açık bir tazelik süresi ayarlayabilir.
jeffatrackaid

1
"zayıf" v "güçlü", tools.ietf.org/html/rfc7232#section-2.1'de tanımlanmıştır ( @Dancrumb'a da not edin)
John Bentley
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.