'Cache-Control arasındaki fark ne: max-age=0, no-cache?
0* *başlık içeriği bayat kabul (ve yeniden getirilmesi gerekir) derhal olduğunu, aslında Cache-Control: no-cache
aynı şey olduğu anlamına gelir.
Google benim için bu gizemi çözmek için başarısız oldu :(
CEVAP
Bu aynı soru vardı, ve benim aramalarda bazı bilgiler (soru sonuçlarından biri olarak ortaya çıktı. Ben tayin etti burada
Cache-Control
Başlığı iki taraf vardır. Bir tarafı web sunucusu tarafından gönderilmiş olabilir. (aka. "kaynak sunucu"). Diğer taraftan tarayıcı tarafından gönderilmiş olabilir. (aka. "user agent").
Kaynak sunucu tarafından gönderilen
max-age=0
sadece önbelleğe yanıtı onlar bu yüzden en başından beri ve bayat olduğunu gösterir inanıyorumGEREKİRdüzeltin yanıt (örn. If-Not-Modified
başlığı ile) önbelleğe alınmış bir kopyasını kullanmadan önce ise, no-cache
onlar söylerGEREKİRönbelleğe alınmış bir kopyasını kullanmadan önce düzeltin. 14.9.1 What is Cacheable:
no-cache
...bir önbellek kullanmak ZORUNDA değilsiniz yanıtı bir sonraki isteğini yerine getirmek için başarılı yeniden doğrulaması olmadan kaynak sunucu. Bu bir sağlar kökeni önbelleğe alma önlemek için bile server için yapılandırılmış önbelleğe alır istemci için bayat tepkiler dönüş istekleri.
Diğer bir deyişle, önbelleğe olabilir bazen seçmek için kullanın bayat yanıt (gerçi sanırım onlar için ekleyin Warning
başlık), ama no-cache
olmadıklarını söylüyor izin kullanmak bayat yanıt ne olursa olsun. Belki istersin diyeGEREKİRbeyzbol istatistikler-düzeltin davranış bir sayfa oluşturulur, ama isterdimGEREKİRe-ticaret için üretilmiş yanıt verdiğinde-düzeltin satın alma davranışları.
no-cache
depolama önlemek için sözde değil derken senin yorum senin dediğin doğru olsa da, aslında no-cache
kullanırken başka bir fark olabilir. Yazan bir sayfa, Cache Control Directives Demystified, (onun doğruluğu konusunda garanti veremem) geldi:
Uygulamada, IE ve Firefox var hayır-önbellek davranmaya başladı eğer komut verir gibi Yönerge tarayıcı. Bu davranış gözlemleyerek başladık bir yıl kadar önce. Şüpheleniyoruz bu değişiklik nedeniyle alındı yaygın (ve yanlış) bunu kullanın Direktif önbelleğe alma önlemek için.
...
Geç bu "cache-control:dikkat edin no-cache" de başladı davranıyor "no-store" Direktifi gibi.
Bir kenara olarak, Cache-Control: max-age=0, must-revalidate
temelde Cache-Control: no-cache
aynı şey demek gerektiğini bana görünüyor. Bu yüzden almak için bir yolGEREKİRno-cache
, no-store
aynı anda no-cache
belirgin geçiş kaçınarak-düzeltin davranış (örn. önbelleğe alma ne olursa olsun. hiç?
Kullanıcı Aracısı tarafından gönderildi
shahkalpesh's answer kullanıcı Aracısı tarafı için de geçerlidir sanırım. Ayrıca 13.2.6 Disambiguating Multiple Responses bakabilirsiniz.
Eğer bir kullanıcı Aracısı Cache-Control: max-age=0
ile bir istek gönderir (aka. "uçtan uca yeniden doğrulaması"), sonra da yol boyunca her önbellek önbellek girdisini (örn. düzeltin olacak kaynak sunucu If-Not-Modified
başlığı) ile tüm yol. Eğer cevabınız 304 (Değişiklik), önbelleğe alınan varlık kullanılabilir.
Diğer taraftan, Cache-Control: no-cache
ile bir istek göndermek (aka. "uçtan uca yeniden") düzeltin yok ve sunucuOLMAMALIDIRyanıt önbelleğe alınmış bir kopyasını kullanır.
Expires ve Cache-Control başlıkları ar...
Http çalışma zamanı arasındaki fark.Ön...
IIS7 Cache-Control...
Cache-Control özel vs Kamu...
Cache-Control: private?...