読者です 読者をやめる 読者になる 読者になる

Plack::Middleware::SessionのSYNOPSISで引っかかった件

http://search.cpan.org/~miyagawa/Plack-Middleware-Session-0.11/lib/Plack/Middleware/Session.pm


SYNOPSISには下記のようなコードが紹介されています。

use Plack::Builder;

my $app = sub {
    my $env = shift;
    my $session = $env->{'psgix.session'};
    return [
        200,
        [ 'Content-Type' => 'text/plain' ],
        [ "Hello, you've been here for ", $session->{counter}++, "th time!" ],
        ];
};

builder {
    enable 'Session';
    $app;
};


これを「session.psgi」で保存して、「plackup session.psgi」で起動します。
http://localhost:5000
でアクセスすると下記のような画面が表示されます。


f:id:memememomo:20100405112041p:image


セッションしているので、更新する毎に数値が1ずつインクリメントされます。
と、思ったのですが、カウンタが2ずつインクリメントされてしまいます。


なんでだろ〜、と思って、サーバの吐き出すメッセージを見ていたら、
favicon.ico」をリクエストしているのに気がつきました。
このリクエストのときもインクリメント処理が走ってしまっていたのですね。