0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Sessionの説明と役割について

Last updated at Posted at 2025-03-16

① Sessionとは?

Session(セッション)とは、Webサーバーがユーザーごとの情報を一時的に保存し、リクエスト間でデータを保持する仕組みです。

Webサイトでは、ユーザーがページを移動するたびに新しいリクエストが発生しますが、Sessionを使うことでログイン情報やカートの中身を維持できます。

例えば、ECサイトでは以下のような情報をSessionで管理します:

  • 「カートの中身」
  • 「ログイン状態」

これらの情報は、Session ID(セッションID)としてユーザーのブラウザにCookieとして保存されます。 次回のリクエスト時にこのSession IDを使って、サーバーがユーザーを識別できるようになります。

スクリーンショット 2025-03-31 090815.png

②Sessionの主な役割

  • ユーザーの識別(ログイン情報の保持)
  • 状態の維持(例:ショッピングカート)
    → ユーザーが追加した商品を記憶
  • アクセス制御(認証が必要なページの制御)
    → SESSION_ID をチェックし、ログイン状態を判定
  • セキュリティ対策
     → Cookie だけでログイン情報を保持すると、改ざんのリスクがあるため、Sessionを利用して安全に情報を管理
    スクリーンショット 2025-04-06 21.55.35.png

③WebサイトでのSession活用例(ECサイト)

以下のような流れでSessionが活用されます:

1.ECサイトにアクセス

GET /
  • サーバーはHTMLを返すだけ。まだSessionは作られていない。

2.ユーザーがログイン

POST /login
  • 認証成功後:
    • サーバーが SESSION_ID を生成
    • Sessionに user_id を保存
    • Cookieに SESSION_ID をセット
Set-Cookie: SESSION_ID=abc123

3.商品をカートに追加

POST /cart/add

• ブラウザが Cookie として SESSION_ID=abc123 を送信
• サーバーは SESSION_ID をキーにしてカート情報をSessionに保存

4.ページを移動(例:商品一覧ページ)

GET /products

• Cookieの SESSION_ID をもとに、サーバーはセッションを参照
• カートの中身などを維持

5.ログアウト処理

POST /logout

• セッションを削除し、ログイン情報を破棄
• Cookieも無効化

Set-Cookie: SESSION_ID=; expires=Thu, 01 Jan 1970 00:00:00 GMT

④Sessionの重要性(ステートレスなHTTPとの関係)

HTTP通信はステートレス(状態を保持しない)なため、
ログインやカートの情報は本来ページ間で引き継がれません。

→そこで Sessionを使うことで、サーバー側でユーザーの情報を一時的に保存できるようになり、状態を持たせることが可能になります。

⑤ LaravelでのSession設定

Laravelでは、.env ファイルの以下の設定で、**セッションの保存方法(ドライバ)**を変更できます:

SESSION_DRIVER=file

主なセッションドライバ:

  • file
    →ファイルとして保存(デフォルト)

  • database
    →データベースに保存

  • redis
    →高速キャッシュ用

  • array
    →一時的(テスト用)

  • その他
    →cookie、apc、memcachedなど

CookieにはSession IDのみが保存され、実際のデータはサーバーに保持されます。
用途に応じて、最適なドライバを選択しましょう!

⑥まとめ

  • Sessionは、サーバー側でユーザー状態を管理する仕組みです。
  • 主にログイン管理・カート情報の保持・アクセス制御に使われます。
  • Laravelでは簡単にSessionの保存先を変更可能!
  • CookieはSession IDを保持し、セキュリティ面でもSessionが安全
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?