Technology

[Java / servlet] セッション・セッション管理とは

2020-12-24

javaのセッションについて、概要を軽く整理する。


セッションとは?

セッションとは下記のような一連の流れを言う。

  1. ウェブブラウザとウェブサーバが接続
  2. ウェブブラウザ側がウェブサーバにリクエストを出す(例:リンクとかをクリックして、このサイトのページがみたいよ!とリクエストを出す)
  3. ウェブサーバがレスポンスを返す(例:リンクした先の文章や画像を送る)
  4. 接続が終わる


セッションは何回かに分けられる



セッションでは、ブラウザとサーバ間で図のようにリクエストとレスポンスを繰り返すようになるのだが、一回では終わらない。

たいてい図のように画像、文章、CSS(デザインの模型みたいなもの)のやり取りで何回も繰り返すようになる。


セッション管理とは

上記のようにセッションは何回に分けて行うのだが一つ問題がある。

レスポンスを送るサーバ側は、1回目の要求と2回目の要求に対して、同じユーザーから行われたリクエストなのかわかっていない。

例えばショッピングサイトで、ユーザーAが本を2冊買うとする。

  • 一冊目の本を買い物カゴに入れて買い物カゴに入った時、これを「セッション1」とする。
  • 二冊目の本を買い物カゴに入れたとき、「セッション2」とする。

この「セッション1」と「セッション2」がユーザーAからのセッションだとサーバは判断できない。

同じユーザからのセッションだと判断できないと、ユーザーAは買い物をまとめてまずできないし、ユーザーBの商品が自分の買い物カゴに入ってくる可能性もある。

なのでユーザーAが「セッション1」と「セッション2」を行うまでを同一セッションとしてまとめたい。

こういった一つ一つのセッションをひとまとめにする仕組みが「セッション管理」となる。

-Technology