IT·テック

クッキーとセッション

テーマパークのフリーパスの手首バンドと、受付カウンターの会員名簿のように、インターネット上で「私が誰か」を覚えておいてくれる仕組みです。

  • 約4分
  • 図 1点
  • 2026-10-13 検証

定義

ウェブサイトがユーザーを覚えて状態を保つために、情報の置き場所を分けて保管する方式です。クッキーはユーザーのパソコン(ブラウザ)に直接保存される小さなメモで、セッションはサーバーの秘密の金庫に情報を置き、ユーザーには入場の番号札だけを渡す方式です。

手の甲スタンプと会員名簿:なぜ「覚えておく」ことが必要なの?

ウェブの基本的な通信ルールであるHTTPは、もともと記憶喪失の人のように動きます。ついさっきログインボタンを押したのに、次のページへ移ると、サーバーは「あなたは誰でしたっけ?」と、きれいさっぱり忘れてしまいます。ページを移動するたびにIDとパスワードを入力し直すわけにはいきませんよね。

そこでウェブサイトには、私が誰かを示しておく道具が必要になります。このとき、ブラウザに軽い記録メモを残しておく技術がクッキー(Cookie)です。テーマパークに再入場するときに見せる手の甲のスタンプのように、ブラウザがアクセスのたびにウェブサーバーへメモを差し出して、「さっきログインした者です」と伝えるのです。

ただ、大事なパスワードや個人情報をそのままユーザーのパソコンに書いておくと、誰かに盗み見られる危険が高まります。そこで重要な情報はサーバー自身が秘密の名簿に記録して管理します。この方式をセッション(Session)と呼びます。

クッキーとセッションは、どう役割を分けているの?

クッキーは、ユーザーの端末(ウェブブラウザ)にファイルの形で直接保存されます。「今日一日このウィンドウを表示しない」という設定や、カートに入れた商品リストなどの便利機能に使われ、後で説明するログインの番号札(セッションID)を保管するのにも使われます。サーバーの保存領域を使わないので、サーバーの負担を減らせるという長所があります。

一方、セッションは、実際の情報(名前、会員ランク、決済状況など)をサーバー内部のメモリやデータベースにだけ保管します。その代わり、ユーザーのブラウザには「あなたは77番のお客様です」と書かれたセッションID(Session ID)という番号札だけを持たせます。

お客さんが番号札を持ってくると、サーバーは内部の名簿から77番の引き出しを開けて、そのお客さんの状態を確認します。こうすれば重要な個人情報がブラウザに残らず、サーバーの中だけにとどまるので、より安全です。ただし、番号札(セッションID)を盗まれると他人になりすまされてしまうため、サイト側は暗号化通信(HTTPS)やクッキーのセキュリティ設定で番号札を守り、一定時間がたつと失効させます。

もう少し正確に言うと:二つはライバル同士ではありません

クッキーとセッションを、まったく別々の競合する技術だと考えてしまいがちです。でも実は、セッションはたいていクッキーの助けを借りて動いています。サーバーがお客さんに発行したセッションの番号札を、お客さんのブラウザに保存し、毎回取り出して見せるときによく使われる手段が、まさにクッキーだからです。番号札をアドレス(URL)にくっつけて持ち歩く方法もありますが、他人に見られやすいため、あまり使われません。

もしブラウザの設定でクッキー機能を完全にオフにしたら、どうなるでしょうか。サーバーがいくらセッションの番号札を作って送っても、ブラウザが保存できないので、クッキーに頼っているサイトでは、ページを移動したとたんにログインが切れてしまいます。

もう少し正確に言うと、最近ではモバイルアプリや複数のサーバーを柔軟につなぐために、トークン(Token)ベースの認証のように、サーバーが名簿を別に持たない方式もよく使われています。それでも、ウェブブラウザが状態を覚える基本の根っこには、今でもクッキーとセッションの協力があります。

よくある誤解

誤解

クッキーは、パソコンをハッキングしたり壊したりする悪質なウイルスの一種だ。

事実

クッキーは単なるテキストデータなので、自分でプログラムを実行したりウイルスを広めたりすることはできません。ただし、閲覧履歴や検索の傾向を追跡するのに使われることがありますし、ログイン情報が入ったクッキーを盗まれると他人にアカウントへ入られてしまうため、注意が必要です。

日常で出会う場面

  1. ショッピングサイトでログインせずにカートに服を入れておくと、数日後にサイトへ戻ってもカートの中身が残っているのは、クッキーのおかげです。

  2. ネットバンキングでログイン後にしばらく何も操作しないでいると、「セキュリティのため自動的にログアウトしました」と表示されるのは、セッションの有効期限切れの機能です。

つまり ひとことで

クッキーは自分のパソコンに残しておくメモで、セッションはサーバーが保管する安全な名簿です。二つは手を取り合って、ウェブサイトのログインや状態を保ってくれています。

作成 2026-05-26 更新 2026-10-13 検証 2026-10-13