なぜログイン状態が保たれるの?
Webサービスにログインすると、ページを移動してもログイン状態が続きます。「なぜ毎回ログインし直さなくていいのか」と不思議に思ったことはありませんか?
その裏側には「Cookie(クッキー)」と「Session(セッション)」というしくみがあります。この2つはよく一緒に語られますが、それぞれ異なる役割を持っています。
Cookieとは何か?
CookieはWebサーバーがブラウザに保存する小さなデータのことです。
ショッピングサイトを例にすると:
- サイトにアクセスすると、サーバーがブラウザに「あなたの識別番号は001です」というデータを渡す
- ブラウザはそれをCookieとして保存する
- 次回同じサイトにアクセスするとき、ブラウザが自動的にそのCookieをサーバーに送る
- サーバーは「001番のユーザーだ」と認識してログイン状態を復元する
このしくみのおかげで、ブラウザを閉じて再び開いてもログイン状態が保たれます。
Cookieはユーザーの端末(パソコン・スマホ)側に保存されます。
Sessionとは何か?
SessionはCookieと似ていますが、データの保存場所が違います。Sessionはサーバー側に保存されます。
Sessionのしくみはこうです:
- ログインすると、サーバーが「セッションID」を発行する
- そのセッションIDをCookieに入れてブラウザに渡す
- 次のアクセス時、ブラウザがセッションIDをサーバーに送る
- サーバーがセッションIDを照合して、ユーザー情報を確認する
実際のユーザー情報(名前・メールアドレスなど)はサーバー側に保存され、ブラウザには識別用のIDだけが渡されます。
CookieとSessionの違いまとめ
▼ Cookie
・データの保存場所:ブラウザ(ユーザーの端末)
・有効期限:設定次第で長期間保持できる
・ブラウザを閉じても残る(設定による)
・用途:ログイン状態の保持、サイトの設定記憶、広告のトラッキングなど
▼ Session
・データの保存場所:サーバー
・有効期限:ブラウザを閉じると通常は消える
・セキュリティが比較的高い
・用途:ログイン認証、ショッピングカートの中身の保持など
Cookieに関するよくある疑問
「Cookieを許可しますか?」の意味
Webサイトを開くと「Cookieを許可しますか?」というバナーが表示されることがあります。これはCookieを使った広告トラッキングなどに同意するかを確認するものです。
EUのGDPRという法律により、Cookieの利用には明示的な同意が必要になったため、このようなバナーが広まりました。
Cookieを削除するとどうなる?
ブラウザの設定からCookieを削除すると、ログイン状態がリセットされ、各サービスで再度ログインが必要になります。サイトの設定(言語・テーマなど)もリセットされることがあります。
Cookieは危険?
Cookie自体は悪いものではありませんが、広告会社が複数のサイトにまたがってユーザーの行動を追跡する「サードパーティCookie」はプライバシーの問題が指摘されています。主要ブラウザはサードパーティCookieの廃止を進めています。
よくある質問
Q. セッションハイジャックとは何?
A. 第三者がセッションIDを盗んで、別のユーザーになりすますサイバー攻撃です。HTTPSの利用や適切なセッション管理で対策できます。
Q. ログアウトするとセッションはどうなる?
A. 正しく実装されたログアウト機能はサーバー側のセッション情報を削除します。共有パソコンを使うときは必ずログアウトしましょう。
まとめ
・CookieはブラウザにデータをCookieとして保存するしくみ
・SessionはサーバーにデータをSessionとして保存するしくみ
・どちらもログイン状態の維持などに使われている
・Cookieは端末に残り、Sessionはブラウザを閉じると消えることが多い

コメント