サーブの応答がブラウザによってキャッシュされないようにしたいので、2つの同じ要求が行われた場合(ナノ秒間隔)でも、サーバーには常に接続されます。これはこれを達成する正しい方法ですか?
class MyServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
response.setHeader("Cache-Control", "no-cache");
}
}
ありがとう、ドン
いいえ、それは正しい方法ではありません。これが正しい方法です:
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.
おそらく他の誰かが他のエントリ/属性を提案しているのを見ることでしょうが、少なくとも上記が言及されている場合、それらは完全に無関係です。
変更後のテストの前に、ブラウザのキャッシュをクリアすることを忘れないでください。
を使用しております:
// HTTP 1.1
response.setHeader("Cache-Control", "private, no-store, no-cache, must-revalidate");
// HTTP 1.0
response.setHeader("Pragma", "no-cache");
Microsoftによると、IEには次のヘッダーが必要です。
例:
Pragma: no-cache
Cache-Control: no-cache
Expires: -1