MENU

【初心者向け】セッションとは?ログイン状態の仕組みをわかりやすく解説

Webサイトを利用していると、

  • ログイン状態が保持される
  • 会員ページにアクセスできる
  • ショッピングカートの中身が保存されている

といった仕組みがあります。

これらを実現する重要な仕組みの一つが セッション(Session) です。

しかし、Web開発を始めたばかりの頃は

  • セッションとは何か?
  • Cookieとの違いは?
  • ログイン状態はどうやって管理されているの?

と疑問に思うことも多いと思います。

この記事では、Webに詳しくない人でも理解できるように

  • セッションとは何か
  • セッションの仕組み
  • Cookieとの違い
  • ログイン状態の仕組み

をわかりやすく解説します。

目次

セッション(Session)とは?

セッションとは

ユーザーごとの状態を一時的にサーバー側で管理する仕組み

のことです。

もう少しシンプルに言うと

「このユーザーは誰か」を覚えておく仕組み

です。

例えば

  • ログインしているユーザー
  • ショッピングカートに商品を入れているユーザー

などの情報を、サーバー側で管理できます。

なぜセッションが必要なのか

実はHTTP通信には

状態を覚えない(ステートレス)

という特徴があります。

例えば次のような操作を考えてみます。

  1. ユーザーがログインする
  2. 別のページを開く

このときサーバーからすると、
「さっきログインした人」なのか「新しくアクセスした人」なのかを区別できません。

そこで必要になるのが セッション です。

セッションを使うことで

「このユーザーはログインしている人」

という情報をサーバー側で管理できます。

セッションの仕組み

セッションは、次のような流れで動きます。

① ユーザーがサイトにアクセスする
② サーバーが セッションID を発行する
③ セッションIDをブラウザに保存する
④ 次回アクセス時にセッションIDを送信する
⑤ サーバーがユーザーを識別する

イメージとしては次のようになります。

サーバー → セッションIDを発行
ブラウザ → セッションIDを保存
次回アクセス → セッションIDを送信

この セッションID によって、
サーバーはユーザーを識別できるようになります。

ログインの例で考えるとわかりやすい

セッションの仕組みは、
ログイン機能を例にすると理解しやすくなります。

例えば、あるサイトにログインするときの流れを見てみましょう。

① ユーザーがログインする

ユーザーがログインフォームに

ユーザーID:tanaka
パスワード:1234

を入力して送信します。

② サーバーがセッションを作成する

ログインが成功すると、サーバーは

session_id = abc123
user_id = tanaka

のようなセッション情報を作成します。

この情報は サーバー側に保存 されます。

③ CookieにセッションIDを保存する

次にサーバーはブラウザに

session_id = abc123

というCookieを保存します。

ここで重要なのは

Cookieにはユーザー情報ではなく「セッションID」だけが保存される

という点です。

④ 再度ページにアクセスする

ユーザーが再度ページにアクセスすると、ブラウザは自動的に

session_id = abc123

をサーバーに送信します。

⑤ サーバーがユーザーを識別する

サーバーは

abc123 → tanaka

というセッション情報を確認し、

「この人はログイン済みユーザー」

と判断します。

セッションとCookieの違い

セッションを理解するうえで重要なのが
Cookieとの違いです。

仕組み保存場所
Cookieブラウザ
セッションサーバー

つまり

  • Cookie → ユーザーのブラウザに保存
  • セッション → サーバー側に保存

という違いがあります。

ただし実際には

セッションIDを保存するためにCookieが使われる

ことが多いです。

つまり

Cookie → セッションIDを保存
セッション → ユーザー情報を管理

という関係になっています。

セッションの特徴

セッションには次の特徴があります。

一時的なデータ

セッションは基本的に

ブラウザを閉じると消える

仕様になっています。

セキュリティが高い

ユーザー情報は

サーバー側に保存される

ため、Cookieより安全に管理できます。

まとめ

セッションとは

ユーザーごとの状態をサーバー側で管理する仕組み

です。

セッションを使うことで

  • ログイン状態の管理
  • ショッピングカート
  • ユーザー情報の保持

などが可能になります。

またセッションはCookieと組み合わせて使われることが多く

Cookie → セッションIDを保存
セッション → ユーザー情報を管理

という関係になっています。

Webの仕組みを理解するためには

  • HTTP
  • Cookie
  • セッション

この3つをセットで覚えると理解が深まります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Muta Blog運営者はデザインも開発もやるWebエンジニアです。
本ブログでは現場で培ったWebの知識やノウハウを発信しています。
Web制作歴5年/現在ReactやRubyを中心に幅広く学習中/

目次