ログイン中の相手を覚えるセッション

セッションは、Webサイトが今やり取りしている相手を一時的に見分けて、状態を保つための仕組みです。

Webサイトは、基本的に物忘れが激しい相手です。ブラウザとサーバーのやり取りを決めるHTTPは、1回1回のお願いが独立していて、前の画面でログインした人なのか、カートに何を入れたのかを、そのままでは覚えていません。

そこで使われるのがセッションです。Webサイトが「いま対応している相手」を一時的に覚えておくための仕組みで、建物の受付で作る来訪記録に似ています。来訪者が来たら受付がその人用の記録を開き、滞在中はその記録を見ながら案内や手続きを続ける。ログイン後のマイページ、ECサイトのカート、入力途中のフォームが次の画面へ引き継がれるのは、この記録があるからです。

記録は受付の手元に、客は控えの番号だけ

来訪記録そのものはサーバー側にあり、ブラウザは「どの記録か」を示す識別子だけを持ちます。その識別子を運ぶのに、クッキーが使われることがよくあります。サーバー側で持つ内容も、必要な分だけに絞ります。

識別子は、いわば受付で渡された控えの番号です。他人に知られれば、その人になりすまして手続きを続けられてしまいます。ログインした直後や権限が変わったときに識別子を新しくするのは、古い番号を使い回させないためです。

いつ記録を閉じるか

長く来なければ、受付は記録を閉じます。セッションの有効期限は、短すぎれば入力の途中で追い出され、長すぎれば放置された画面を他人に使われる危険が増えます。管理画面で一定時間操作がなければ自動でログアウトさせるのも、この期限の設定です。

共有パソコンでは、ログアウトしたときに記録が確実に閉じるようにしておきます。

セッションは、あくまで滞在中だけの一時的な記録です。利用者を永久に表す台帳ではないので、長く残しておく情報や本人確認の仕組みとは分けて設計します。