基本情報技術者
テクノロジ系
Webアプリケーションにおけるセッション管理の目的として適切なものはどれか。
1.
Webサーバの負荷を下げる
2.
ステートレスなHTTPで状態を維持してログイン状態などを管理する
✓ 正解
3.
Webページの表示速度を上げる
4.
データベースへのアクセスを管理する
📝 解説
HTTP(HyperText Transfer Protocol)はステートレス(状態を持たない)なプロトコルであり、リクエストとレスポンスのたびに独立した通信が行われ、サーバは前回のリクエストを「覚えていない」設計になっています。セッション管理はこの制約を補い、「ログイン状態・ショッピングカートの内容・ユーザー設定」などの状態をリクエストをまたいで維持するための仕組みです。ホテルのルームキーに例えると、チェックイン時にカードキー(セッションID)を受け取り、それを提示することで部屋(自分のアカウント状態)にアクセスできる仕組みと同じです。仕組みとしては①ログイン成功時にサーバがランダムなセッションIDを生成→②サーバ側のセッションストア(DB・メモリ等)にセッション情報を保存→③クライアントのCookieにセッションIDを保存→④次回リクエスト時にセッションIDを送りサーバが対応する状態を取得します。セッションハイジャック(セッションIDの盗用)対策として、HTTPSの使用・HttpOnly/Secure Cookie属性・セッションIDの定期的な再生成が重要です。誤答の「Webサーバの負荷を下げる」はキャッシュ・CDNの目的、「表示速度を上げる」はパフォーマンス最適化です。「セッション管理=ステートレスなHTTPで状態を維持・セッションID+Cookie」と覚えましょう!