[PHP-users 16670]Re: セッションのセキュリティーとキャッシュはトレードオフ?

Shin MATAMURA matamura @ m-flats.co.jp
2003年 7月 14日 (月) 10:17:52 JST


マタ@MFと申します。

いくつかご質問を頂きましたが、PHPの話題から逸脱したので
簡単にお答えします。
以後はHTTPクライアントやサーバのRFC実装状況に関する情報を
ご自身で検索してみて下さい。

まず、キャッシュの残る可能性に対する最初の2つのご質問ですが、
「must-revalidate」をCache-Controlヘッダで返している以上、
クライアントはキャッシュの有効性の判断にExpiresやmax-ageに基づく
ExpirationモデルでなくValidationモデルを採用することが強制されます。  
従ってご質問のような現象は起こらないはずです。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4

ブラウザの戻るボタンによる「ページの有効期限が切れています」エラーですが、
本来戻るボタンで表示される画面はキャッシュではなく履歴なので、
賞味期限切れだったとしてもこのようなエラーを出すべきではないと
RFCに書いてあります。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.13
しかし前回のメールでも書きましたが、「SHOULD」なので
従う事が強制されておらず、実装者の裁量に委ねられています。

最後の「現在運用中のサイトでは見られない…」と言う質問には、
答えかねます。
各サイトのロジックの事までは分かりません。
もしご自身でお調べになるのなら、その様なサイトがクライアントに対して
どのようなレスポンスヘッダを返してくるか、解析してみてみたら如何でしょう。

私が「ブラウザによる」と書いたのは、主に履歴の実装に関して
バラツキがあるだろうと言う意味です。
なので、今回の戻るボタンの挙動は全ブラウザにおいて保証されません。
ページキャッシュの取り扱いに関してはRFCに違反していないブラウザと
サーバ(プロクシ含む)ならば、ご心配している事は起こらないはずです。
ただし、「Cache-Control」ヘッダはHTTP1.1から出てきたものなので、
HTTP1.0準拠のブラウザは「Cache-Control」ヘッダを解釈してくれる事を
期待できません。
従ってページキャッシュの挙動についても保証されません。
もちろん、RFCを無視しているようなブラウザの挙動は何も保証されません。

それでは、失礼します。
# PHPと関係の無い話題で失礼しました


PHP-users メーリングリストの案内