ITまとめノート
このサイトについて IT図解 セキュリティ解説ブログ
このサイトについて IT図解 セキュリティ解説ブログ
トップ/IT図解一覧

Cookie

2021/1/4 20:442024/12/4 19:08
Cookieの概要Cookieの主な用途Cookieの構成Cookieの属性一覧Cookieの受け渡し方法Cookieの受け渡しのフローCookieの種類1st party Cookie3rd party Cookie

Cookieの概要

Cookie(クッキー)とは、ユーザ(ブラウザ)がWebサイトを閲覧した際にサーバが発行し、ブラウザに一時的に保存されるテキスト情報のこと。
ブラウザは再度同じWebサイトを訪問する際に、保存したCookie情報をサーバへ送信する。
 
 

Cookieの主な用途

  • ユーザがサイトにログインしているかどうかの判定(セッション管理)
  • ショッピング系のサイトでカートの中身(購入保留中の商品データ情報)を記録
  • ユーザ個別設定の記録
  • サイト運営者によるアクセス解析
  • 広告業者による各ユーザに合った広告の表示

Cookieの構成

Cookieは「<Cookie名> = <Cookie値>」から成り、オプションとして「属性」を追加できる。
「属性」はCookieの使われ方などの条件を指定するための値で省略可能。
各属性はセミコロン「;」で区切られる。
 
以下の図はCookie名「CNT」, Cookie値「123」のCookieの例。

Cookieの属性一覧

属性名概要値の例
DomainCookieの送信対象としたいドメインを指定 (上位ドメインのみ設定可能)shukapin.com
Path対象となるディレクトリ (指定しない場合はCookieを発行したページのパスになる)/test
ExpireCookieの有効期限(日時指定)Sun, 09 Apr 2023 12:00:00 GMT
Max-AgeCookieの有効期限(発行からの有効時間指定)216000
SecureHTTPS通信の場合にのみCookieを送信-
HttpOnlyJavaScriptからCookie情報へアクセスすることを禁止-
SameSite別のドメインに貼られているリンクからアクセスした際のCookie送信の許可/拒否設定・Strict (別ドメインへCookie送信禁止) ・Lax (GETリクエストのみ別ドメインにCookie送信可能) ・None (別ドメインにCookie送信可能)
※「Expire」属性または「Max-Age」属性が指定されていない場合、セッション終了時にcookieが削除される。
 
▼ Cookieの属性の詳細な仕様はこちらを参照!
Set-Cookie - HTTP | MDN
クッキーは名前と値の組で始まります。 は任意の US-ASCII 文字の集合で、制御文字、空白、タブを除いたものです。 ( ) @ , ; : \ " / [ ] ?
https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Set-Cookie

Cookieの受け渡し方法

Cookieはリクエストメッセージ・レスポンスメッセージのHTTPヘッダに格納されて送受信される。
  • サーバ→ブラウザ:レスポンスメッセージの「Set-Cookie」ヘッダに格納して送信
  • ブラウザ→サーバ:リクエストメッセージの「Cookie」ヘッダに格納して送信
 

Cookieの受け渡しのフロー

Cookie「CNT」がブラウザとサーバ間でどのように受け渡され、どのように使われるかを以下の図に示す。
 
【保存しているCookieが無い場合】
① ブラウザはサーバにリクエストを送信する。
② サーバはレスポンス内に「Set-Cookie」ヘッダを追加して、Cookieを送信する。
③ ブラウザはCookieの情報を保存する。
 
【保存しているCookieがある場合】
④ ブラウザは保存しているCookieがある場合、リクエストの「Cookie」ヘッダにCookie情報を追加して送信する。
⑤ サーバは受け取ったCookie情報を基にレスポンスを作成する。
⑥ サーバはブラウザ側のCookie情報を更新する場合、「Set-Cookie」ヘッダでCookieを送信する。
 

Cookieの種類

どこから発行されるのかによって、Cookieは「1st party Cookie」(ファーストパーティCookie)と「3rd party Cookie」(サードパーティCookie)の2種類に分類される。

1st party Cookie

ユーザが訪問しているサイト自身が発行するCookie。
サイト(ドメイン)を横断して利用することはできない。
 

3rd party Cookie

ユーザが訪問しているサイトとは異なるサイトが発行するCookie。
複数サイトから横断的にCookieを付与して個人を特定し、利用者が全く関係ないサイトを見た時にも、関連する広告を配信可能とするために利用。
 
※ Googleは2023年を目処にChromeでのサードパーティCookieのサポートを終了予定。
 
トップ/IT図解一覧
 
footer CSS
menu
global CSS/JS
general
目次
見出し・ページタイトル
上メニューヘッダ
callout
表
SNSアイコン