read.cgi改良スレッド

このエントリーをはてなブックマークに追加
679デフォルトの名無しさん
ちょっと Expiresヘッダを吐いた場合のIE5.01とネスケ4.72の
振る舞いを観察してみました

IE5.01 -> Expiresは無視されている模様(Expiresを吐かなかった場合との差が見られない)

ネスケ4.72 -> 当該ページを表示させてから「戻る」ボタン等で前のページに戻ってから
        「次」ボタン等で当該ページに戻った際に次のような振る舞いになる
        Expire日時前 -> そのままキャッシュの内容が表示される
        Expire日時後 -> If-Modified-Since付きでコンテンツを取りに行く
                 Statusが304ならキャッシュの内容を表示
        このケース以外(URLを直打ちした場合,リンクからジャンプした場合,
        リロードボタンを押した場合等)ではExpiresなしの場合と振る舞いの違いがない模様

ってな感じでした なお >>664 で指摘されているRFCの規定にもかかわらず
ネスケはコンテンツをexpireさせる日時はPC側の内部時計のものを使ってしまっている模様

ところで ネスケ4.72で次のような問題があるようです
    gzip圧縮されたコンテンツでContent-Lengthヘッダが指定されていると
    Last-Modifiedによる指定が無効になってしまう
これはネスケ側のバグではないかと思います 現在2chサーバで稼動中のread.cgiでは
Content-Lengthヘッダがありませんが これが指定されるようになると
ネスケでは(少なくとも4.72では)If-Modified-Since付きのリクエストを
行わなくなって毎回コンテンツを取りに行くようになってしまうと思います

mod_gzipではdechunkを行うとContent-Lengthヘッダを生成させるので
(そうでなくともスタティックなコンテンツではそうですが)これは
頭の痛い問題ですねぇ......