ご存知のように、キャッシュがないということは、キャッシュがまったくないという意味ではなく、ユーザーエージェントが常にサーバーにキャッシュしたものを使用してもよいかどうかを尋ねる必要があるということです。対照的に、no-storeはコピーを保持しないと言っています。つまり、何も質問する必要はありません。「これを再利用できますか?」の答えを知っているなら 常にいいえの場合、キャッシュの検証をスキップし、他のデータ用にキャッシュ内のスペースを節約することで、パフォーマンスが向上します。
パフォーマンスの他に、ブラウザの履歴との動作の違いがあります。HTTP 1.1セクション13.13には、「有効期限は履歴メカニズムには適用されない」と記載されています。no-cacheヘッダーは有効期限を記述しているため、戻るボタンなどの履歴メカニズムには適用されません。したがって、ユーザーはサーバーに接続せずにキャッシュなしで前のページに戻ることができます。
一方、no-storeヘッダーは、データがセッションの外部に保存されるのを防ぎます。この場合、履歴メカニズムで使用することはできません。ストアなしの場合、ユーザーが別のドメインに移動してセッションを終了してから戻った場合、ブラウザーが何を表示するかを知る唯一の方法は、サーバーから最初のページを再度取得することです。
このトピックに関するChromiumの問題がどのように区別されるかを次に示します。
no-cacheは、「これをキャッシュしない」という意味ではありません(つまり、no-storeになります)。キャッシュなしとは、リソースの鮮度が再検証されない限り、これを通常のロードに使用しないことを意味します。履歴ナビゲーションは通常のロードではありません。