HTTPとCookieの仕組みとは? 図解で分かる初心者向け完全ガイド

 

 

 

 

 

 

 

 

WEB TECHNOLOGY · BEGINNER’S GUIDE

HTTPとCookieの仕組みとは?
図解でわかる初心者向け完全ガイド

「Cookieって何?」「一度ログインしたサイトは、なぜ自分の事を覚えているの?」と疑問に思った事はありませんか。

WebサイトではHTTPプロトコル という通信ルールを使って、ブラウザとサーバーがデータをやり取りしています。

ただし、HTTP自体は過去の通信を自動的に記憶しません。

そこで活躍する仕組みのひとつがCookie(クッキー) です。

この記事では、基礎知識から通信ヘッダーの例、セッションとの違い、セキュリティ対策、Chromeでの確認方法まで、専門用語をできるだけかみ砕いて説明します。

まず押さえる3つの結論
  • HTTP: ブラウザが要求し、サーバーが応答する通信ルール。
  • Cookie: 小さな情報をブラウザに保存し、条件に応じて後のリクエストでも送る仕組み。
  • セッション: ログイン状態など、利用者に関する一連の状態を管理する仕組み。

HTTPプロトコルとは?基本的な仕組み

HTTPはブラウザとサーバーの通信ルール

HTTP(Hypertext Transfer Protocol)は、Web上で情報をやり取りするためのルールです。

ブラウザでページを開くと、ブラウザはサーバーにページのデータを求めます。

サーバーはHTMLなどの情報を返し、ブラウザが画面に表示します。

この「送ってください」という要求がHTTPリクエスト 、「こちらがデータです」という返答がHTTPレスポンス です。

WebページではHTMLに加えて画像、CSS、JavaScriptを取得するため、複数の通信が行われる事があります。

ブラウザ サーバー ① HTTPリクエスト ② HTTPレスポンス
図1:ブラウザとサーバーはリクエストとレスポンスで通信する

HTTPが「ステートレス」と呼ばれる理由

HTTPにはステートレス という特徴があります。

簡単に言えば、それぞれの要求は独立しており、HTTP自体が前回のアクセスを自動で覚えている訳ではありません。

例えばログイン後に別のページを開いても、そのページへの要求だけでは「前にログインした人と同一人物か」を判断出来ません。

利用者を関連付ける仕組みが必要になり、その代表例がCookieとセッション管理です。

なお、現在多くのサイトで利用されるHTTPSは、HTTPをTLSで暗号化して通信する方式です。

Cookieも重要な識別情報を扱うため、HTTPSが基本になります。

Cookieに何が保存されるのか

Cookieは、Webサイトがブラウザに保存させる、名前と値を中心とする小さなデータです。

Cookieは情報その物を全て記録するよりも、利用者を識別するためのIDや、好みの設定などに使われます。

Cookieの情報例 用途
セッションID サーバー側のログイン状態を確認する
language=ja 表示言語を日本語にする
theme=dark ダークモードの設定を保持する
カート識別子 買い物中のカート情報を呼び出す
分析用の識別子 サイト利用状況を分析する

図書館の利用者カードをイメージすると分かり易いでしょう。

カードの番号を手掛かりに、図書館の管理システムで貸出状況を確認出来ます。

Cookieも、ブラウザにあるIDをサーバーが受け取って利用者の状態を調べる事があります。

注意: Cookieは機密情報を安全に隠す金庫ではありません。パスワードや重要な個人情報をそのままCookieに入れる設計は避けましょう。

Cookieが使われる3つの場面

① セッション管理: ログイン状態や買い物中の状態を継続するために利用します。Cookieを使って識別子を送れば、ページを移動するたびに利用者を照合できます。

② パーソナライズ: 言語や画面テーマなど、サイトの表示を利用者の好みに合わせるために利用します。

③ トラッキング: ページの利用状況や広告の効果を測定するために利用されます。ただし、サイトをまたいだ追跡はプライバシー上の問題を招く可能性があります。

HTTPとCookieが連携する仕組み【図解】

発行・保存・再送信の5ステップ

Cookieは、サーバーのSet-Cookie レスポンスヘッダーを通じて設定され、次の通信ではブラウザのCookie リクエストヘッダーで送信されます。

ブラウザ サーバー ① ページを要求 ② Set-Cookie を返す ③ Cookieを保存 例:session_id ④ Cookie付きで再アクセス ⑤ Cookieを確認して応答
図2:Cookieの発行・保存・送信の基本フロー
  1. ブラウザがWebページを要求する。
  2. サーバーがレスポンスにSet-Cookie を付ける。
  3. ブラウザが指定条件に従ってCookieを保存する。
  4. 次の通信で、送信条件に合うCookieをCookie ヘッダーに含める。
  5. サーバーは受け取った情報を元に応答する。

ただし、Cookieは毎回必ず送られる訳ではありません。

Domain、Path、有効期限、SameSite、Secure、ブラウザ側の制限などによって送信条件が決まります。

Set-CookieとCookieヘッダーの実例

サーバーからブラウザへの応答:

HTTP/1.1 200 OK
Content-Type: text/html
Set-Cookie: theme=dark; Path=/; Max-Age=86400

これは「テーマをダークモードに設定し、有効期間は24時間」とする例です。次のリクエストでは、条件に合えば以下の様に送信されます。

GET /mypage HTTP/1.1
Host: example.com
Cookie: theme=dark
項目 Set-Cookie Cookie
方向 サーバー → ブラウザ ブラウザ → サーバー
場所 レスポンスヘッダー リクエストヘッダー
役割 保存・更新を指示 保存した値を送信
属性 Max-Age、Pathなどを指定可 通常は名前と値を送る

Cookieとセッションの違い

ログイン状態を維持する仕組み

多くのWebサービスでは、ログインに成功するとサーバーがセッションを作成します。

そのセッションを探すためのセッションID を発行し、ブラウザにはCookieで保存します。

ブラウザは次回以降のリクエストでIDを送り、サーバーは対応するセッションが有効かを確認します。

これにより、ページを移動してもログイン状態を維持出来ます。

ブラウザ Cookie ID = A7X9 サーバー IDを照合 セッションID送信 セッション情報 A7X9 → ログイン中 サーバー側にある ログイン情報を確認
図3:Cookieは識別子を運び、セッション管理は利用者の状態を扱う

この方式では、Cookieその物にパスワードを保存する必要はありません。

ただし、全ての認証方式でサーバー側のセッション保存を使うとは限らず、署名済みトークンなどを利用する設計もあります。

Cookie・セッション・localStorage・キャッシュを比較

技術 主な役割 場所 HTTPで自動送信
Cookie 識別情報や設定の保存・送信 ブラウザ 条件に合えば送信
セッション 一連の利用者状態の管理 実装による(サーバー側など) セッションそのものは送信しない
localStorage Webアプリのデータ保存 ブラウザ 自動送信しない
キャッシュ 取得済みデータの再利用 ブラウザなど HTTPキャッシュの仕組みに従う

セッションCookieと永続Cookie

セッションCookie には明示的な期限がなく、一般的にはブラウザセッションが終わるまで保持されます。

ただし、ブラウザのセッション復元機能でCookieが復元される場合があります。

永続Cookie はExpires やMax-Age で保存期間を指定した物です。

例えば表示言語を翌日も引き継ぐ場合に使えます。

Cookieが残っていてもサーバー側のログイン状態が期限切れなら再認証が必要です。

Cookie属性と安全な設定方法

属性の意味と具体例

属性 意味 例
Domain 送信先ドメインの範囲 Domain=example.com
Path 対象となるURLパス Path=/shop
Expires 有効期限の日時 Expires=...
Max-Age 有効期間(秒) Max-Age=3600
Secure 原則HTTPSで送信 Secure
HttpOnly JavaScriptからの直接読み取りを制限 HttpOnly
SameSite サイト間リクエストでの送信制御 SameSite=Lax
Partitioned トップレベルサイト別にCookieを分離 Partitioned

Domain を省略すると通常は設定したホストに限定され、Path は送信対象のURL範囲を指定します。ただし、Pathはセキュリティ上の強固なアクセス制御ではありません。Expires とMax-Age の両方がある場合、Max-Ageが優先されます。

Secure・HttpOnly・SameSiteをどう使う?

Secure は原則HTTPSだけで送る設定です。HttpOnly はJavaScriptからの直接読み取りを制限します。

SameSite は異なるサイトからのリクエストにCookieを送るかを制御します。

SameSite 動作
Strict 基本的に同一サイトのリクエストのみ
Lax 同一サイトに加え一部のトップレベル遷移を許可
None サイト間でも送信対象にできるが、Secureが必要。ブラウザの追跡防止設定で制限される場合あり

安全なログイン用Cookieの一例は次のとおりです。

Set-Cookie: __Host-session=RANDOM_SESSION_ID; Path=/; Secure; HttpOnly; SameSite=Lax

__Host- 接頭辞を利用したCookieは、対応ブラウザでSecure、Path=/、Domain属性無しなどの制約を受けます。

セッションIDには推測困難な値を使い、ログイン成功後のID再発行やサーバー側の失効処理なども重要です。

Cookieのセキュリティとプライバシー

Cookie自体はウイルスではない

Cookieは小さなデータであり、それ自体がウイルスとして動作する物ではありません。

しかし認証用Cookieが盗まれると、不正なログイン操作に悪用される可能性があります。

リスク 概要 代表的な対策
セッションハイジャック 盗まれたセッションIDの悪用 HTTPS・HttpOnly・適切な失効管理
XSS 悪意あるJavaScriptを実行させる 安全な出力処理・CSPなど
CSRF 利用者が意図しない操作の送信 SameSite・CSRFトークン
セッション固定攻撃 攻撃者が用意したIDを利用させる 認証後のID再発行
行動追跡 訪問履歴などの関連付け Cookie設定と追跡防止の確認

利用者側では、ブラウザの更新、不審なリンクを避ける事、共用端末でのログアウトが基本的な対策です。

ファーストパーティとサードパーティCookie

ファーストパーティCookie は、閲覧中のサイトと同じサイトに関係するCookieです。ログインや設定保存などに使われます。

サードパーティCookie は、閲覧中とは別のサイトに関係するCookieで、外部広告などに使われてきました。プライバシー上の問題があるため、ブラウザによってブロックや分離などの措置が行われています。ただし制限内容はブラウザ・設定・利用環境によって異なります。

Cookieの同意画面では、必須の機能用Cookieと広告・解析用Cookieの役割を分けて確認すると判断し易くなります。

ChromeでCookieを確認・削除する方法

デベロッパーツールで確認する

  1. Google Chromeで確認したいWebサイトを開きます。
  2. WindowsならF12 またはCtrl + Shift + I で開発者ツールを開きます(MacはCommand + Option + I )。
  3. Application → Storage → Cookies を開き、確認したいオリジンを選びます。
  4. CookieのName、Value、Domain、Path、Expires、Secure、HttpOnlyなどを確認します。
  5. さらにNetwork タブで通信を選ぶと、リクエストのCookie やレスポンスのSet-Cookie も確認出来ます。
セッションIDなど認証に関わるCookieの値は、スクリーンショットやSNSに公開しない様にしてください。

削除・無効化するとどうなる?

Cookieを削除すると、ログアウト状態になったり、言語・画面テーマの設定が戻ったり、ショッピングカートの状態に影響したりする事があります。

一方で、サーバー側の会員情報や購入履歴まで自動的に削除される訳ではありません。

Cookieを無効にするとログイン出来無いサービスもあります。

また、Cookie以外の保存・識別技術も存在するため、Cookie削除だけで追跡を完全に止められるわけではありません。

HTTPとCookieについてよくある質問

Q1. Cookieを許可すると個人情報が全部送られますか?

いいえ。Cookieの許可だけで端末のす全ての個人情報が送信される訳ではありません。ただし、識別子がサイト側の利用者情報と関連付けられる事はあります。

Q2. Cookieはウイルスですか?

いいえ。Cookieは主に小さなデータです。ただしCookieの識別情報が不正に利用されるリスクはあります。

Q3. Cookieを拒否してもログイン出来ますか?

Webサービスによります。Cookieに依存した認証方式では、ログイン状態を保てない場合があります。

Q4. Cookieとキャッシュは同じですか?

異なります。Cookieは利用者識別や設定など、キャッシュは画像やCSSなど取得済みデータの再利用が中心です。

Q5. Cookieはどこに保存されますか?

ブラウザが管理する保存領域に記録されます。開発者ツールで閲覧出来る場合があります。

Q6. シークレットモードでもCookieは使いますか?

利用中はCookieが使われる場合があります。通常の閲覧環境とは保存が分離され、シークレットセッション終了後には基本的に削除されます。

Q7. Cookieは毎回サーバーに送信されますか?

いいえ。Domain、Path、有効期限、Secure、SameSite、ブラウザの制限などの条件に合う場合だけ送られます。

まとめ:HTTPは通信、Cookieは状態を引き継ぐ仕組み

HTTPはブラウザとサーバーがリクエストとレスポンスで情報をやり取りするためのルールです。

一方でHTTP自体は過去の通信を自動では覚えません。

Cookieはブラウザに小さな情報を保存し、後の通信でサーバーに送る事で、ログイン状態の維持や表示設定などを可能にします。

Set-Cookie はサーバーからブラウザ、Cookie はブラウザからサーバーに向かうと覚えましょう。

また、安全に利用するためにはHTTPSとSecure、HttpOnly、SameSiteなどを適切に組み合わせ、サーバー側でもセッション情報を守る事が大切です。

覚えておこう: 「HTTPは情報を届けるルール」「Cookieは次の通信に引き継ぐ小さな情報」「セッションはログイン状態などを管理する仕組み」です。

 

コメント

この記事へのコメントはありません。

CAPTCHA


自己紹介

ペンネーム :サンセット

このサイトの作者です。

IT技術の仕事をしています。

クラウドを勉強中です。

保有資格:第二種情報処理技術者

カレンダー
2026年11月
月 火 水 木 金 土 日
 1
2345678
9101112131415
16171819202122
23242526272829
30  
カテゴリー
月別アーカイブ
PAGE TOP

You cannot copy content of this page