『モジュール版PHPで「If-Modified-Since」に対応する』が間違っていたのが原因で、HIMMELも「If-Modified-Since」への対応が一部おかしくなっていた。
原因は、桁取りのために0から始まる数値(8進法になる)があるにも関わらず、数字と月名の対応関係(配列のキー)をint型で定義していたため。キーの方をstringに変更して解決。
以上の点を修正してHIMMEL v0.5.3としてリリース。PHP4向けも更新した(実は中身は変わっていない)。
この記事は結構参照されていたので、間違えた情報が伝播してしまった事になる。申し訳ない。非常に気が付きにくい部分のバグなので、間違えたコードを持って行ってしまった人は永遠に気が付かないかも知れない。致命的ではないのが救いか。
もう一つ、「200 OK」を返す際に「Last-Modified」を送信しておかないとFirefoxは「If-Modified-Since」を使用しない。他のブラウザは確認してないが、「Date」を基準にチェックするとは限らないようなので、注意書きを追加しておいた。
http://yudai.arielworks.com/memo/2004/08/24/160328.trackback
末尾に「8 + 0」の計算結果を繋げて下さい。例えば計算結果が「17」の場合、「160328.trackback17」です。これは機械的なトラックバックスパムを防止するための措置です。