Plack::App::ConditionalGET の Last-Modified の実装について
諸事情により自前で HTTP client cache の実装をつくってるんですが、コンテントをファイルにそのまま保存したら、If-Modified-Since つけてんのに 304 にならなくてなんでかなーとおもったら、Plack::App::ConditionalGET は $res->header('Last-Modified') eq $req->header('If-Modified-Since') なときにだけ 304 になるように実装されていたのでした。
この挙動は RFC 的には認められている挙動なのですが、うっかりするとはまりがちなのでメモ。
thanks to id:kazuhooku