web-dev-qa-db-ja.com

なぜChromeがログインページをキャッシュするのですか?

障害のある子供向けのリテラシーWebサイトは、一部のユーザーのログインに関する問題を引き起こしています。http://tarheelreader.org/でこのサイトにアクセスできます。 https://tarheelreader.org/login/でログインし、再度ログインページに移動すると、ログアウトメッセージが表示されます。ただし、Chromeはページをキャッシュし、代わりに元のログインページを返します。ヘッダーは次のとおりです。

Cache-Control:no-store, no-cache, must-revalidate, max-age=0, post-check=0, pre-check=0
Content-Encoding:gzip
Content-Type:text/html; charset=UTF-8
Date:Thu, 26 Jan 2017 22:55:55 GMT
Expires:Wed, 11 Jan 1984 05:00:00 GMT
Link:<https://tarheelreader.org/?p=110663>; rel=shortlink
Pragma:no-cache
Server:nginx
Vary:Accept-Encoding
X-UA_Compatible:IE=Edge,chrome=1

これは、このページをキャッシュしないと言うことができるあらゆる方法です。ただし、デバッガのネットワークタブには、ディスクキャッシュからのページが表示されます。デバッガのチェックボックスを使用してキャッシュを無効にすると、正常に機能します。

更新サイトのサンドボックスバージョンをHTTPSを使用するように設定すると、問題はなくなります。たぶん、HTTPからHTTPSへの切り替えとその逆についての何かでしょうか?

3
GaryBishop

no-cacheno-storeほど強力ではありません。 Chromeのドキュメント は、no-cacheが再利用可能なドキュメントを示すことを示し、no-storeは、not再利用されます。

この情報に基づいて、Cache-Controlヘッダーは次のようになります。

Cache-Control: no-store

その中の余分な値は、Chromeがどれを尊重するかを選択できるようにすることです。

5