はじめに
cookieとは簡単に言えば、ウェブブラウザに保存される小さなデータです。
主に以下の3つの用途で使われます。
- セッション管理: ユーザーのログイン状態、ショッピングカート、ゲームのスコア、またはその他のユーザーセッションに関するサーバーが覚えておくべきその他のものの保持
- パーソナライズ: 表示言語や UI テーマのようなユーザー設定
- トラッキング: ユーザーの行動の記録および分析
また、cookieは基本的にファーストパーティcookie
とサードパーティcookie
の2種類に分けられます。
この記事ではファーストパーティcookieとサードパーティcookieに加え、パラサイトcookie
の3種類のcookieの違いについて解説します。
cookieの設定
ウェブブラウザにcookieを設定する(別名:焼く)方法には以下の2種類があります。
2種類の方法について知ることで3種のcookieの違いが分かりやすくなると思いますのでこの記事で紹介します。
1.JavaScriptのdocument.cookie
以下のようなコードでcookieを設定可能です。
document.cookie = "favorite_food=tripe; SameSite=None; Secure";
2.HTTPヘッダーのSet-Cookie
以下のようなヘッダーを付与する事で、cookieを設定可能です。
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT
ファーストパーティcookieとは
ユーザーが訪問したウェブサイトのドメインで焼かれるcookieです。
主にウェブサイト側がdocument.cookieやSet-Cookieヘッダーでcookieを焼き、セッション管理などを行います。
ここで重要なのが、cookieを焼く側に関係なく焼かれる側のドメインがファーストパーティの時にファーストパーティcookieになる
点です。
例えば広告事業者などのサードパーティがdocument.cookieでcookieを焼く場合もファーストパーティcookieになります。
サードパーティcookieとは
ユーザーが訪問したウェブサイトのドメイン以外のドメイン
で焼かれるcookieです。
主に広告事業者が複数のドメインでユーザーに合わせて広告をターゲティングするのに使用されます。
外部ドメインにcookieを焼く必要があるのでSet-Cookieヘッダーを使用する必要があります。
document.cookieではサードパーティcookieを焼けません。
また、サードパーティcookieは外部にユーザーの情報が送信されるのでプライバシーの侵害が問題になっています。
ですので、各所でサードパーティcookieの規制が行われています。
こちらの記事にあるように、Chromeがサードパーティcookieを廃止しようとした時期もありました。
しかし、主に広告業界で必要不可欠な技術であるのも事実であり、後にGoogleはサードパーティcookieの廃止を撤回しました。
利便性と危険性を併せ持つ諸刃の剣みたいな技術ですね。
パラサイトcookieとは
パラサイトcookieはこちらの記事にあるように、アドテク界隈で使われている造語です。
主に広告事業者が特定のサイトにおける広告表示回数を制限するのに使われます。
前述の通り、サードパーティがdocument.cookieで焼くcookieはファーストパーティcookieです。
しかし、初見ではサードパーティcookieと勘違いしやすいcookieですのでアドテク界隈ではサードパーティが焼くファーストパーティcookieをパラサイトcookie
と名付けたようです。
ファーストパーティの領域にcookieを焼くことでサードパーティcookieの規制を回避する、まるでファーストパーティに寄生しているかのようなcookieという意味合いです。
しかし、サードパーティcookieと、サードパーティが焼くファーストパーティcookieの違いを明確にする上で非常に有用な単語だと考えています。
まとめ
3種類のHTTP Cookieについて簡潔に述べると以下のようになります。
- ファーストパーティcookie: ユーザーが訪問したウェブサイトのドメインに焼かれるcookie。
ウェブサイト側(ファーストパーティ)が焼く。
- サードパーティcookie: ユーザーが訪問したウェブサイトのドメイン
以外のドメイン
に焼かれるcookie。サードパーティがSet-Cookieヘッダーで焼く。
- パラサイトcookie: ユーザーが訪問したウェブサイトのドメインに焼かれるcookie。ファーストパーティcookieに含まれる。
サードパーティがdocument.cookieプロパティで焼く。
表にまとめると以下のようになります。
cookieを焼く事業者→ cookieを焼く技術↓ |
ファーストパーティ | サードパーティ |
---|---|---|
document.cookie | ファーストパーティcookie | パラサイトcookie |
Set-Cookieヘッダー1 | ファーストパーティcookie | サードパーティcookie |
おわりに
以前、cookieについて色々と調べていましたが、ファーストパーティcookieとサードパーティcookieの違いがややこしくて理解に苦労しました。
ですので、cookieの理解に苦しむ人に届けという想いで記事にしてみました。
皆さんのcookieについての理解が深まれば幸いです。
-
ファーストパーティはファーストパーティのドメイン、サードパーティはサードパーティのドメインに付与する前提です。 ↩