セッションステート(Session State)とは、Webサイトを利用している間、ログイン情報やカートの中身といった利用者ごとの情報を、一時的に保持しておく仕組みのことです。本来やり取りのたびに情報を忘れてしまうWebの通信を、あたかも会話が続いているかのように扱うための工夫といえます。
現実世界に例えると、セッションステートは受付で渡される整理券や名札のようなものです。窓口の担当者が変わっても、名札を見れば「さっきの続きの人だ」とすぐに分かるように、サーバー側も情報をもとに利用者を識別し続けることができます。
セッションステート図解
なぜセッションステートが必要なのか
| 特性 | 内容 |
|---|---|
| HTTPの性質 | 1回ごとの通信で完結し、前後のやり取りを覚えていない |
| セッションステート | その欠点を補い、利用者の状態を一時的に保持する |
セッションステートの仕組み
多くの場合、利用者ごとに割り振られた識別番号(セッションID)をブラウザに預け、サーバー側にはその番号に紐づく情報を保存しておくという形で実現されています。次にアクセスが来た際、その識別番号を手がかりに、続きの状態を呼び出す仕組みです。
身近な利用例
ネットショッピングで商品をカートに入れたまま別のページを見に行っても、カートの中身が消えないのは、セッションステートのおかげです。ログイン状態を保ったまま複数のページを移動できるのも、同じ仕組みが働いています。
セッションが切れるとき
一定時間操作をしなかったり、ブラウザを閉じたりすると、保持されていた情報が破棄され「セッションが切れた」状態になります。久しぶりにサイトを開くと再ログインを求められるのは、この仕組みによるものです。
保存場所による違い
セッションステートは、サーバー側のメモリやデータベースに保存する方法と、ブラウザ側のクッキーなどに保存する方法があります。サーバー側で管理すれば安全性を確保しやすく、複数のサーバーで処理を分散させる際には工夫が必要になることもあります。
あわせて知っておきたい用語
- Cookie(クッキー):
ブラウザに保存される、小さなデータのことです。 - HTTP:
Webサイトの通信に使われる基本的な通信規約です。 - ログイン:
利用者本人であることを確認し、サービスを使える状態にすることです。 - 負荷分散:
複数のサーバーへ処理を振り分ける仕組みです。



コメント