🐥
セッションとは?
セッションとは
ユーザーがウェブサイトにアクセスしてからの行動やサイトを離れるまでの一連の行動のこと
例えばwebブラウザからセッションを扱う場合は、CookieにセッションIDを含めてブラウザで管理していることが多い
HTTPはステートレスなのでセッションを使用して情報を管理する
HTTPについて
1セッションの定義
- アクセス→ページ遷移→離脱(別のウェブサイトへ移動)
- アクセス→ページ遷移→開いたまま放置
- アクセス→ページ遷移→別タブで開く
- Cookie、サーバーサイドセッション、LocalStorageなどの場合のみ
- SessionStorageの場合はタブ毎に独立して1セッションとなる
比較
方法 | サーバーサイド | HTTPヘッダー | LocalStorage | SessionStorage | Cookie | URLパラメータ |
---|---|---|---|---|---|---|
保存場所 | サーバー | サーバー | クライアント | クライアント | クライアント | クライアント&サーバー |
データ共有 | すべてのタブ | すべてのタブ | 同一オリジンのすべてのタブで共有 | 各タブ | すべてのタブ | 同じURL内であれば |
持続時間 | セッションタイムアウトまで | セッションタイムアウトまで | 永続的 | タブまたはウィンドウを閉じるまで | 有効期限まで保存 | 新しいタブは新しいURL |
データサイズ | サーバー側で大量保存可能 | サーバー側で大量保存可能 | 5MB(ブラウザによる) | 5MB(ブラウザによる) | 各クッキーで定められたMB | URLの長さの制限による |
セキュリティ | 高 | 高(HTTPS使用推奨) | 中(クライアントによる) | 中程度(クライアントによる) | 低(クライアントによる) | 最低(URL露出のため) |
メリット | 安全で効率的 | 安全で効率的 | 同一オリジン間[1]でデータ共有可 | タブ間でデータの独立管理可 | 簡単 | クッキーが使えない環境で使用可能 |
デメリット | サーバー設定が必要 | サーバー設定が必要 | データサイズに制限 | タブ間でデータを共有できない | セキュリティリスクあり | URLのコピーでセッション乗っ取りリスク |
-
ドメイン、プロトコル、ポートが同じ ↩︎
Discussion