特定のWebサイトのクライアントブラウザキャッシュをオフにする方法はありますか?


10

これはブラウザにとらわれない質問ですが、IE9でテストしています。

ユーザーがアクセスするWebアプリの1つがランダムにキャッシュされており、必要なときに変更が表示されません。他のサイトではこの問題は発生しておらず、他のサイトでは発生しないと主張しているベンダーと協力してきました。開発者ツールバーを使用して「サーバーから強制的に更新」を選択すると、すべてが正しく更新されます。

この問題を実際に解決する代わりに、この特定のサイトのキャッシュを無効にすることで問題を回避することが考えられます。ただし、その方法はわかりません。

回答:


10

ブラウザのキャッシュを無効にする唯一の適切な方法は、Webアプリケーション自体からのHTTPヘッダーによるものです。2000年以降のブラウザでは、HTTP 1.1の「Cache-Control」ヘッダーだけで十分です。ただし、追加の保護のために、サーバーはHTTP 1.1 "Cache-Control"ヘッダーとHTTP 1.0 "Expires"ヘッダーの両方を一緒に発行できます

キャッシュの無効化を処理するハックっぽい、しかし時々見られる方法は、サーバーからのURLの「キャッシュバスター」文字列です。キャッシュバスターは多くの場合タイムスタンプベースであり、URLを一意にするために各HTMLリンクにクエリ文字列として追加され、1回だけ使用されます。のようなものhttp://example.org/filename.html?cb=<timestamp+random_value>。これは醜いですし、HTTPヘッダーがそれほど良くないことは何もしません。しかし、それは限られた対象者(イントラネット上のfx)のハックとして、または適切なHTTPヘッダーと共に保護の追加レイヤーとして使用できます。

私の知る 限り、Internet Explorer内からのみ、単一サイトのキャッシュを選択的に無効にする方法はありません。(非常に複雑な)解決策の1つとして、LAN上の中間キャッシュとしてVarnishキャッシュをインストールし、VarnishをHTTPプロキシとして使用するようにInternet Explorerを設定し、VarnishでVCL言語を使用して、この特定のサイトのみのHTTPヘッダーを書き換えることができます。

正直なところ、あなたのベンダーはここで間違いを犯していると思います。IEにFiddler2、FirefoxにFirebugをインストールし、Webアプリケーションが送信する実際のHTTPヘッダーを確認することをお勧めします。これを、すでに上記でリンクしているMark Nottinghamのキャッシングチュートリアルと関連付けてください。



0

問題のWebサイトのコンテンツを変更できない場合は、プロキシサーバーを使用して、ブラウザーに送信されるコンテンツを変更できます。これにより、有効期限ヘッダーを変更できます。


0

WebサイトでHTTPS経由の接続が許可されている場合、ブラウザーによっては、暗号化されたページのキャッシュを無効にすることができます。

IEでは、これはこうして行うことができます:

Internet Options-> Advanced-> Security-> Do not save encrypted pages to diskで、IEの設定を再確認できます。


彼はブラウザにとらわれない解決策を求めました。
Mircea Vutcovici

1
@Mirceaこれは、IS、ブラウザに依存しないソリューション。私はIEを使用して不必要な例を提供しました。他の多くのブラウザにはSSLのキャッシュを無効にするオプションがありますが、設定は別の場所にあります。
JeffG 2011

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

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

URLバーでランダムなキーを使用することを検討することもできます。これにより、ブラウザ内でのキャッシュも防止されます。


これは、GollyJerがWebサイトを変更する機能を持っている場合に機能します。私は彼が彼の質問に基づいていないことを集めます。
JeffG

正確には、「ランダムキー」はキャッシュを効果的に防止しません。ブラウザと中間のキャッシュは、応答をディスクに保存する場合があります。ただし、次に同じファイルが要求されたときには、ランダムキーによってURLが異なるため、ディスク上のキャッシュバージョンは使用されません。新しい表現がサーバーからダウンロードされ、場合によってはディスクにキャッシュされます。さらに、META PRAGMAタグは古く、使用すべきではありません-HTTP ExpiresおよびCache-Controlヘッダーを使用することをお勧めします。
Jesper M
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.