セッション管理とは、Cookie(セッションID)をクライアントユーザとサーバ側で送受信させあうことで交信状態を保持/管理するための仕組み
##セッション/訪問
Webサイトにアクセスして行う一連の行動(まとまった動作の流れ)
例
通信の開始から終了
ログインからログオフ
Webサーバとの接続から情報の要求と応答を経て切断までを一つのセッション単位
##セッションID
アクセス中のユーザの識別や行動の補足(セッション管理)のために付与される固有の識別情報。
ユーザがアクセス/ログインした際に発行され、一定時間アクセスがなかったりログアウトすると破棄される。
HTTPではセッション管理の仕組みが用意されていないため(注1)、ユーザを識別する手法として最初にサーバがセッションIDを発行し、通信の際にはユーザ-とサーバ-が必ずセッションIDを送受信することにより、ユーザ-ごとに適した情報を提供する制御が可能となる。
注1
HTTPリクエストは基本はステートレスな為、セッションIDが保持されない。そのためセッションという機能を用いてステートレスな通信規約をステートフルな状態へと変化させる。
##Cookie
「セッションIDやセッション名」を送受信するため使われる機能がCookieであり、ブラウザに保存される小さなテキストデータファイルである。
Webサーバーで発行されたセッションIDをクライアントユーザーのブラウザのCookieにもたせることで、クライアントがサーバにアクセスしたたびに、テキストデータファイル内の情報をサーバ側に送信し、クライアントとサーバの交信状態を保持させ、特定のユーザーであることをサーバに識別させる。。
##セッション管理
WWWサービスで使用されるHTTPプロトコルはクライアントからWebサーバーへのリクエストがあるたびに、「クライアントとサーバー間でコネクションが成立し、リクエストに対す応答が行われ、コネクションが切断される。
そのため、Webサーバーに対する複数リクエストが同一のクライアントから送信されたものであるかどうかは判断不可能。
例えば電子商取引サイトのようにWebサーバにユーザーがログインしてからログアウトするまで、ログイン情報を保持したままページの移動をするにはこのままでは問題がある。
そこで「クライアントとサーバー間でその情報を保持し、アクセス制御を一つの集合体として管理する仕組み」それがセッション管理となる。