新生鳩丸掲示板♯

bakera.jp > 新生鳩丸掲示板♯ > スレッド内全記事表示 (記事 222 からのスレッド)

スレッド内全記事表示 (記事 222 からのスレッド)

[222] Cache-Control

えむけい (2003年7月2日 22時33分)

ところで【謎】このサイトからの応答ヘッダにCache-Control: privateが含まれてるのはどうしてですか。何か公開キャッシュに蓄積されると困るものがあるのでしょうか【ピュア】。

[223] Re: Cache-Control

ばけら (2003年7月3日 11時2分)

>ところで【謎】このサイトからの応答ヘッダにCache-Control: privateが含まれてるのはどうしてですか。

 謎です。むしろ Microsoft に聞いて欲しいくらいの勢いですが、ちょっと調べてみましょう。

[224] Re: Cache-Control

ばけら (2003年7月3日 13時1分)

 ということで、

Response.Cache.SetCacheability(HttpCacheability.Public);

 を追加して public にるようにしてみました。

 なんでコイツのデフォルトが private になっているのかイマイチ分かりませんが、まあこれで解決かと。

[228] Re: Cache-Control

えむけい (2003年7月3日 21時48分)

> ということで、

>

>Response.Cache.SetCacheability(HttpCacheability.Public);

>

> を追加して public にるようにしてみました。

> なんでコイツのデフォルトが private になっているのかイマイチ分かりませんが、まあこれで解決かと。

Cache-Control: publicは通常キャッシュできないもの(POSTへの応答とかAuthorization付きのリクエストへの応答とか)もキャッシュしてよいという意味の指示ですが、本当に大丈夫ですか? 【謎】

[229] Re: Cache-Control

ばけら (2003年7月3日 22時2分)

>Cache-Control: publicは通常キャッシュできないもの(POSTへの応答とかAuthorization付きのリクエストへの応答とか)もキャッシュしてよいという意味の指示ですが、本当に大丈夫ですか? 【謎】

 あら、POST の応答もキャッシュされちゃいます?

 Auth については RFC2616 に See also と注意書きがある勢いですからキャッシュされると思いますが、これはそもそも使っていないので問題ないです。

[230] Re: Cache-Control

えむけい (2003年7月3日 22時37分)

> あら、POST の応答もキャッシュされちゃいます?

> Auth については RFC2616 に See also と注意書きがある勢いですからキャッシュされると思いますが、これはそもそも使っていないので問題ないです。

|9.5 POST

(略)

| Responses to this method are not cacheable, unless the response

| includes appropriate Cache-Control or Expires header fields.

POSTの説明のほうがこうなってますからキャッシュされるのでは。302 Foundもキャッシュ可能に化けますが302が吐かれるときにはCache-Contorlは付いてないようなので問題なさげです【謎】。それより【謎】301のときCache-Control: privateのままでせっかくキャッシュ可能なはずの301をキャッシュできなくなっていることを発見しました【謎】。

ていうかpublicもprivateもno-cacheも吐かないような指示はできないのですか【ピュア】。できなかったらフィードバックよろしく【謎】むらまささん【誰】。

[232] Re: Cache-Control

ばけら (2003年7月4日 11時50分)

>それより【謎】301のときCache-Control: privateのままでせっかくキャッシュ可能なはずの301をキャッシュできなくなっていることを発見しました【謎】。

 あー、public にしておきます。

>ていうかpublicもprivateもno-cacheも吐かないような指示はできないのですか【ピュア】。

 どうも Last-Modified を設定すると強制的に Cache-Control がつくらしく、そのデフォルトが private のようです。で、

Response.Cache.SetCacheability(null);

 なんてので上書きしようとしても例外が発生して NG。無理げです。

[234] Re: Cache-Control

えむけい (2003年7月4日 12時59分)

>Response.Cache.SetCacheability(null);

>

> なんてので上書きしようとしても例外が発生して NG。無理げです。

HttpCacheability.Serverではどうですか。

MSDNの解説によるとno-cacheが付くそうですがその説明が正しいとするとServerAndNoCacheとの違いがよくわかりません。

あるいは拡張ヘッダを書き込む機能でLast-Modifiedを追加するとLast-Modifiedと認識されなくて何とかなるとか。

[235] Re: Cache-Control

ばけら (2003年7月4日 13時16分)

>HttpCacheability.Serverではどうですか。

 見事に

Cache-Control: no-cache

Pragma: no-cache

Expires: -1

 が送出されました。HttpCacheability.NoCache でも同じです。

 両者の違いは、たぶん ASP.NET のキャッシュ機能が使われるかどうかなのではないかと思います。想像ですが。

>あるいは拡張ヘッダを書き込む機能でLast-Modifiedを追加するとLast-Modifiedと認識されなくて何とかなるとか。

 やー、もう public で良いです。

 POST の結果だけ no-cahce になるようにしておきます。

最近の日記

関わった本など