セッション は、ユーザーがサイトを使い始めてから終えるまでの 一続きのやり取り を、サーバー が「同じ相手だ」と覚えておく仕組みです。ログインした状態を、ページを移動しても保ち続けられます。
HTTP は一回ごとに関係がリセットされる(ステートレスな)性質を持ちます。そこで、次のように相手を識別します。
- ログイン時、サーバーが利用者ごとの合言葉(セッションID)を発行。
- それを Cookie に入れてブラウザに渡す。
- 以降のアクセスにその合言葉が添えられ、サーバーは「さっきログインした人だ」と判断。
サーバー側には、その合言葉に対応するユーザー情報(誰か、カートの中身など)を保管しておきます。セッションには有効期限があり、一定時間操作がないと切れて再ログインが必要になります。近年は、サーバーに状態を持たせず トークン(JWT など)で認証を扱う方式も広く使われています。