Belirli web siteleri için istemci tarayıcısı önbelleğini kapatmanın bir yolu var mı?


10

Bu tarayıcı agnostik bir soru ama IE9 ile test ediyoruz.

Kullanıcılarımızın ziyaret ettiği web uygulamalarından biri rastgele önbelleğe alınıyor ve değişiklikler gerektiğinde görünmüyor. Başka hiçbir sitede bu sorun yok ve başka kimsenin olmadığını iddia eden satıcıyla çalıştık. Geliştirici araç çubuğunu kullanır ve "sunucudan yenilemeyi zorla" yı seçersek her şey doğru şekilde güncellenir.

Sorunu gerçekten çözmek yerine düşüncemiz, bu sitenin önbelleğini devre dışı bırakarak çözüm bulmaktır. Ancak, nasıl olduğunu bilmiyoruz.

Yanıtlar:


10

Tarayıcı önbelleğini devre dışı bırakmanın tek uygun yolu, HTTP başlıkları web uygulamasının kendisidir. HTTP 1.1 "Cache-Control" üstbilgisi, 2000 yılı sonrası tarayıcılar için tek başına yeterli olmalıdır. Ancak ekstra koruma için sunucu hem HTTP 1.1 "Cache-Control" hem de HTTP 1.0 "Expires" başlıklarını birlikte yayabilir .

Önbellek geçersiz kılma işlemlerini hack'ish ancak bazen görülen bir yolu , sunucudaki URL'lerde "önbellek engelleme" dizesidir . Önbellek genellikle zaman damgası tabanlıdır ve URL'yi benzersiz hale getirmek ve yalnızca bir kez kullanmak için her HTML LINK'e bir sorgu dizesi olarak eklenir. Gibi bir şey http://example.org/filename.html?cb=<timestamp+random_value>. Bu çirkin ve HTTP üstbilgilerinin daha iyi yapmadığı hiçbir şey yapmıyor. Ancak sınırlı bir kitle (Intranet'te fx) için bir saldırı veya uygun HTTP üstbilgileriyle birlikte ek bir koruma katmanı olarak kullanılabilir.

AFAIK, tek bir site için önbelleği yalnızca Internet Explorer içinden seçerek devre dışı bırakmanın bir yolu yoktur . Bir (kanlı karmaşık) çözüm Varnish önbelleğini LAN'ınıza bir arabellek olarak yüklemek , Internet Explorer'ı Varnish'i HTTP proxy olarak kullanacak şekilde ayarlamak ve Varnish'teki VCL dilini sadece bu belirli site için HTTP başlıklarını yeniden yazmak için kullanmak olabilir.

Dürüst olmak gerekirse, satıcınızın burada bir hata yaptığını düşünüyorum. IE için Fiddler2 veya Firefox için Firebug yüklemenizi ve web uygulamasının gönderdiği gerçek HTTP başlıklarına bakmanızı öneririm. Correlate bununla Mark Nottingham'ın önbelleğe alma öğretici Zaten yukarıda bağlantılı - Ben başlıkları önbelleğe alma izin ya da en azından expressively önbelleğe korusun yok tahmin ediyorum.



0

Söz konusu web sitesinin içeriğini değiştiremiyorsanız, tarayıcınıza uygun içeriği değiştirmek için bir proxy sunucu kullanabilirsiniz. Bu, süre sonu başlıklarını değiştirmenize olanak tanır.


0

Web sitesi HTTPS üzerinden bağlanmanıza izin veriyorsa, tarayıcınıza bağlı olarak şifrelenmiş sayfaları önbelleğe almayı devre dışı bırakabilirsiniz.

IE'de, bu şekilde yapılabilir:

IE'nin ayarlarını Internet Seçenekleri-> Gelişmiş-> Güvenlik-> Şifreli sayfaları diske kaydetme bölümünde iki kez kontrol edebilirsiniz.


Bir tarayıcı agnostik çözüm istedi.
Mircea Vutcovici

1
@Mircea Bu IS Bir tarayıcı agnostik çözüm. Sadece IE kullanarak ücretsiz bir örnek sağladı. Diğer birçok tarayıcının önbelleğe alma SSL'sini devre dışı bırakma seçeneği vardır, ancak ayarlar farklı yerlerde bulunur.
JeffG

0
<meta http-equiv="PRAGMA" content="NO-CACHE">

http://www.zann-marketing.com/developer/20051018/stop-browser-caching-using-meta-tags.html

URL çubuğunda rastgele anahtarlar kullanmayı düşünebilirsiniz; bu, tarayıcıda önbelleğe almayı da önler.


GollyJer web sitesini değiştirme yeteneğine sahipse, bu işe yarardı. Ben onun sorusuna dayanarak toplanmam.
JeffG

Kesin olarak, "rastgele anahtarlar" önbelleğe almayı etkili bir şekilde engellemez. Tarayıcı ve aradaki önbellekler yanıtı yine de diskte saklayabilir. Ancak bir dahaki sefere aynı dosya istendiğinde, rastgele anahtar URL'yi farklı hale getirir ve böylece diskte önbelleğe alınan sürüm kullanılmaz. Yeni bir sunum sunucudan indirilir ve muhtemelen diske önbelleğe alınır. Ayrıca, META PRAGMA etiketi eskidir ve kullanılmamalıdır - öneri HTTP Son Kullanma Tarihi ve Önbellek Denetimi üstbilgilerinin kullanılmasıdır.
Jesper M
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.