Authorization ヘッダと Vary: authorization
仮に、 Vary: authorization
が有効だとしたら、キャッシュキーがURL+Authorization+Authorizationの値
になるので https://hoge.com/path/?authorization=hogehoge
みたいな一意キーで、それに対応するコンテンツが保存されることになる、と理解すればよいはず。
これが「Authorizationヘッダをつけたときにはキャッシュしてはならない」という命題と振る舞いとしては被ってしまう。 Vary: authorization
が機能するときには authorization
ヘッダがリクエストされてきたときのみで、このとき、 Cache-Control: public, max-age: 10
のようなヘッダをレスポンスするとする。仕様の解釈としては、以下のようになるとおもわれる。
https://hoge.com/path/?authorization=hogehoge
のようなキーをCDNなどの中間サーバーが生成し、コンテンツを10秒間キャッシュするAuthorization
ヘッダがリクエストされているので、キャッシュしない。
2 によって 1 の効果が打ちけされる(結果としてはキャッシュされない)はずだが、これが実装によって揺れがあるかどうかはちょっと確認してみたいところ(RFC7231の7.1.4の 「Vary: authorization は意味がない」という指摘によって意図されているのは、おそらくこの意味とおもわれる)。
もし、1 によってキャッシュされている場合、次回リクエストが max-age 期間内かつAuthorizationの値が同じであれば、CDNからキャッシュが返却されることになる。