Webアプリにおいてセッション管理を行うときに、昔からJSPなどで行われている、セッションIDを何らかのデータに結びつける手法がある。一方、例えばSeasideのように、継続を使用してセッション管理を行うという方法もある。継続ベースというのは技術的にもおもしろいし、上のURLでも指摘しているように、二度押しなどの対策もしやすい、というメリットがある。

しかし、単純に実装してしまうと、URLがユーザにとって意味不明の文字列になってしまう。セッションと強く結びついているので、ブックマークをすることができない。もちろん、「ログインが必要な画面など、セッション内のページについてはブックマークができなくても良い」という考え方もあるが、「どうせ継続で制御できるのだから、リクエストURLはいつも固定でいい」などという安直な考えを推し進め、ログインが不要なページまで継続で実装してしまうと、意味不明なURLが大量生産されることになってしまう。

そう考えると、JSPスタイルで実装するのも悪くない。ユーザ(主語)が、ある「対象」にある「操作」を行う、というのを実装するのであれば、リクエストURLは「動作」と「対象」を表し、認証情報(「主語」)のためにセッションを用いる、というのが良い解ではないかと考えた。

Comments