

chromeブラウザ利用時にキャッシュを無効化し、常にサーバ通信を行いたいです。

プログラム上「cache-control」を利用し、下記ソースコードでキャッシュを制御を行いたいです。

[code]

    response.setHeader(“Cache-Control”, “no-cache,no-store,must-revalidate,max-age=0”);
    response.setHeader(“Pragma”, “no-cache”);
    
[/code]

結果としては成功しませんでした。  
こちらの方法が間違ってるか、また別の方法があるかを教えていただけますでしょうか。


CC BY-SA 4.0
2018-08-16T03:15:55.143
47552
2018-08-17T12:22:25.717
2018-08-16T10:34:40.813
3054
29745
question
http google-chrome
chromeブラウザのキャッシュを無効化し、常にサーバ通信を行いたい


キャッシュを無効化したい場合は、`Cache-Control`を`no-store`と設定するようにします。  
`no-cache,no-store,must-revalidate,max-age=0`のように複数指定するのはよくないと思われます。

`Google Web Fundamentals`の[「HTTP
キャッシュ」のページ](https://developers.google.com/web/fundamentals/performance/optimizing-
content-efficiency/http-caching)では次のように説明されています。

> 「no-cache」は、同じ URL
> に対する後続のリクエストへのレスポンスとして、以前返されたレスポンスを使用するには、まずサーバーに問い合わせてレスポンスに変更があったかどうかを確認する必要があることを示します。そのため、適切な検証トークン（ETag）がある場合、no-
> cache を指定してもキャッシュされたレスポンスを検証するためのラウンドトリップは発生しますが、レスポンスに変更がなければダウンロードを省略できます。
>
> 一方、「no-
> store」はもっと単純です。返されたレスポンスのバージョンにかかわらず、ブラウザのキャッシュやすべての中間キャッシュはそのレスポンスを一切格納できません。たとえば、個人の機密データや銀行データが含まれているレスポンスなどです。ユーザーがこのアセットをリクエストするたびに、リクエストがサーバーに送信され、完全なレスポンスが毎回ダウンロードされます。

（追記）参考  
画面上の入力データが残るというのは、フォームのオートコンプリート機能のためです。詳しくはMDNの「[フォームのオートコンプリートを無効にするには](https://developer.mozilla.org/ja/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion)」を見てください。


CC BY-SA 4.0
2018-08-16T09:22:35.423
47563
2018-08-17T12:22:25.717
2018-08-17T12:22:25.717
15171
15171
47552
answer