🐥

セッションとは?

2024/05/28に公開

セッションとは

ユーザーがウェブサイトにアクセスしてからの行動やサイトを離れるまでの一連の行動のこと

例えばwebブラウザからセッションを扱う場合は、CookieにセッションIDを含めてブラウザで管理していることが多い
HTTPはステートレスなのでセッションを使用して情報を管理する

HTTPについて

https://qiita.com/mayobimu/items/b322f09fd4336e2102ef

1セッションの定義

  • アクセス→ページ遷移→離脱(別のウェブサイトへ移動)
  • アクセス→ページ遷移→開いたまま放置
  • アクセス→ページ遷移→別タブで開く
    • Cookie、サーバーサイドセッション、LocalStorageなどの場合のみ
    • SessionStorageの場合はタブ毎に独立して1セッションとなる

比較

方法 サーバーサイド HTTPヘッダー LocalStorage SessionStorage Cookie URLパラメータ
保存場所 サーバー サーバー クライアント クライアント クライアント クライアント&サーバー
データ共有 すべてのタブ すべてのタブ 同一オリジンのすべてのタブで共有 各タブ すべてのタブ 同じURL内であれば
持続時間 セッションタイムアウトまで セッションタイムアウトまで 永続的 タブまたはウィンドウを閉じるまで 有効期限まで保存 新しいタブは新しいURL
データサイズ サーバー側で大量保存可能 サーバー側で大量保存可能 5MB(ブラウザによる) 5MB(ブラウザによる) 各クッキーで定められたMB URLの長さの制限による
セキュリティ 高(HTTPS使用推奨) 中(クライアントによる) 中程度(クライアントによる) 低(クライアントによる) 最低(URL露出のため)
メリット 安全で効率的 安全で効率的 同一オリジン間[1]でデータ共有可 タブ間でデータの独立管理可 簡単 クッキーが使えない環境で使用可能
デメリット サーバー設定が必要 サーバー設定が必要 データサイズに制限 タブ間でデータを共有できない セキュリティリスクあり URLのコピーでセッション乗っ取りリスク
脚注
  1. ドメイン、プロトコル、ポートが同じ ↩︎

Discussion