CookieとSessionの違いをやさしく解説|ログイン状態が保たれるしくみ

なぜログイン状態が保たれるの?

Webサービスにログインすると、ページを移動してもログイン状態が続きます。「なぜ毎回ログインし直さなくていいのか」と不思議に思ったことはありませんか?

その裏側には「Cookie(クッキー)」と「Session(セッション)」というしくみがあります。この2つはよく一緒に語られますが、それぞれ異なる役割を持っています。

Cookieとは何か?

CookieはWebサーバーがブラウザに保存する小さなデータのことです。

ショッピングサイトを例にすると:

  1. サイトにアクセスすると、サーバーがブラウザに「あなたの識別番号は001です」というデータを渡す
  2. ブラウザはそれをCookieとして保存する
  3. 次回同じサイトにアクセスするとき、ブラウザが自動的にそのCookieをサーバーに送る
  4. サーバーは「001番のユーザーだ」と認識してログイン状態を復元する

このしくみのおかげで、ブラウザを閉じて再び開いてもログイン状態が保たれます。

Cookieはユーザーの端末(パソコン・スマホ)側に保存されます。

Sessionとは何か?

SessionはCookieと似ていますが、データの保存場所が違います。Sessionはサーバー側に保存されます。

Sessionのしくみはこうです:

  1. ログインすると、サーバーが「セッションID」を発行する
  2. そのセッションIDをCookieに入れてブラウザに渡す
  3. 次のアクセス時、ブラウザがセッションIDをサーバーに送る
  4. サーバーがセッション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はブラウザを閉じると消えることが多い

コメント

タイトルとURLをコピーしました