pleroma.tenjuu.net

Authorization ヘッダと Vary: authorization

仮に、 Vary: authorization が有効だとしたら、キャッシュキーがURL+Authorization+Authorizationの値 になるので https://hoge.com/path/?authorization=hogehoge みたいな一意キーで、それに対応するコンテンツが保存されることになる、と理解すればよいはず。

これが「Authorizationヘッダをつけたときにはキャッシュしてはならない」という命題と振る舞いとしては被ってしまう。 Vary: authorization が機能するときには authorization ヘッダがリクエストされてきたときのみで、このとき、 Cache-Control: public, max-age: 10 のようなヘッダをレスポンスするとする。仕様の解釈としては、以下のようになるとおもわれる。

  1. https://hoge.com/path/?authorization=hogehoge のようなキーをCDNなどの中間サーバーが生成し、コンテンツを10秒間キャッシュする
  2. Authorization ヘッダがリクエストされているので、キャッシュしない。

2 によって 1 の効果が打ちけされる(結果としてはキャッシュされない)はずだが、これが実装によって揺れがあるかどうかはちょっと確認してみたいところ(RFC7231の7.1.4の 「Vary: authorization は意味がない」という指摘によって意図されているのは、おそらくこの意味とおもわれる)。

もし、1 によってキャッシュされている場合、次回リクエストが max-age 期間内かつAuthorizationの値が同じであれば、CDNからキャッシュが返却されることになる。

re: Authorization ヘッダと Vary: authorization
キャッシュがひきだされるかどうかはタイミングの問題な気がするのでちょっと検証しておくか
replies
0
announces
0
likes
0