[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: cache



>> On Thu, 29 Jan 2004 12:39:42 +0900 (JST)
>> 「白井」== shirai@meadowy.org (Hideyuki SHIRAI (白井秀行)) said as follows:

>RFC2616 で規定されている cache validation をきちんと実装するのが筋だ
>とは思います.ただ,それには暇が足りないので,とりあえず当面の処置と
>して,天海さんのパッチを改変して適用しました.

白井> これなんですが、ぼくの場合は弊害の方が大きいので、問答無用で
白井> cache するオプションを増設して良いですか?とりあえず、パッチを文
白井> 末につけます。

白井> また、

>>pukiwiki 編集は, [編集] ボタンをおすと編集画面を GET してきて, フォー
>>ムを編集して, [更新] ボタンで POST します. 同じページを再び編集して,
>>[更新] すると, pukiwiki に「更新の衝突」が発生したと怒られます.

白井> これが体験出来て、sandbox がついている Wiki ページをご存じでした
白井> ら教えてください。問答無用で cache しても post するときになんと
白井> かならないかなぁと思っています。

実は,私もそう思い始めてます.

  (1) 問答無用に cache してしまう.

  (2) w3m-view-previous-page / w3m-view-next-page などでヒストリ上を移
      動する場合,および,w3m-view-source / w3m-view-header などの同一
      コンテンツ内の移動は,cache を信用する.

  (3) w3m-view-this-url などで移動する場合は cache validator を呼び出
      す.正式の cache validator は大変だから当面は以下の検査で代替す
      る.

       a) GET メソッドについては
          pragma: no-cache / cache-control: max-age=0 のみを調べる.
       b) POST メソッドについては無条件に cache を信用しない[*].

と言うのでかなり救えるのではないかなあ,とぼんやり考えていました.

ただ,PukiWiki の編集でのトラブルは cache 周りだけの問題ではない可能性
もあります.例えば,私の近所で WiLiKi を使っているのですが,

    あるページを編集してテキストを追加
    -> コミット
    -> 成功
    -> 同じページを編集しようとしたら,さっき追加したテキストがない
    -> もう一度編集してコミット
    -> 更新の衝突

という現象が起きています.
開発元のページ http://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi 
に SandBox が用意されているので,確認できると思います.で,これは form 
の値を覚えているヒストリ周りも悪さをしているのでは? と疑っています.

[*] 根拠は RFC2616 の以下の部分.

9.5 POST
   The POST method is used to request that the origin server accept the
   entity enclosed in the request as a new subordinate of the resource
   identified by the Request-URI in the Request-Line.
   <snip>
   Responses to this method are not cacheable, unless the response
   includes appropriate Cache-Control or Expires header fields. However,
   the 303 (See Other) response can be used to direct the user agent to
   retrieve a cacheable resource.

-- 
土屋 雅稔 ( TSUCHIYA Masatoshi )