woshidan's loose leaf

ぼんやり勉強しています

いまさらCookieの仕様について調べてみた

アクセスしているユーザの判別ってどうしたらいいんだろう、という感じだったので、

http://web-tan.forum.impressrd.jp/e/2010/06/10/8147

自前でやるよりFluentdとかのライブラリを調べたほうがよさそうだけど、とりあえず何やってるのか検討つかなかったので、上の記事が面白かった。

クッキーの区分について

  • セッションクッキー
  • ショッピングカートなどで同じセッション(同一ユーザーの一連の利用行動)の間の行動だけを追跡するためのクッキーで、ブラウザを閉じるなどセッションが切れれば消滅します。

  • 永続クッキー

  • セッションが切れてもパソコンに記録が残っているものですが、未来永劫に保存されるのではなく、有効期限が設定されているということです。広告効果測定ツールアクセス解析ツールが使用しているクッキーの有効期間は30日、45日、90日などサービスによってさまざまですし、ユーザーが手動で削除することも可能です。

ということは、
自前で簡単に作ろうと思った場合、cookieがユーザのブラウザに保存されている、という前提で、
前回アクセス時間みたいなのか、ブラウザID(こっちかな?)を取っておいて、
そのIDにひもづいた行動記録を呼び出して、行動状態を判定して、その状態のレコードをまた作る...みたいな感じなんだろーか(適当)。

  • ファーストパーティクッキー

    • そのときに閲覧中のページと同じドメイン名から発行されるクッキーで、Amazon.co.jpなどECサイトが自社サイトのログイン状態やカートの状態を保持するために発行されるような場合に使われます。
  • サードパーティクッキー

    • そのときに閲覧中のページとは異なるドメイン名から発行されるクッキーで、広告配信サービスやアクセス解析サービスなどの別ドメイン名から発行されるクッキーのことです。

次の一文が興奮した。

アクセス解析ではファーストパーティクッキーを使う場合もあれば、サードパーティクッキーを使う場合もあります。

クッキーの仕様について

それにしても、クッキーに発行元で区別があるんだ、と思ってから、ふと、発行元ドメインが分かるって、クッキーにどういう情報が含まれているっけ、という気持ちになったので、それも調べてみる。

http://www.tohoho-web.com/wwwcook.htm

最新更新が2004年なんだけど、大丈夫かね、と思ったので、こっちも見たけど大丈夫そうなので以下にメモ。

http://www.futomi.com/lecture/cookie/specification.html

  • Cookieは基本的にOSやブラウザのバージョンによって異なるが、ファイルとしてクライアント側の端末に保存されている
  • Cookieには以下のパラメータがある
    • NAME=値 クッキーはキー/値形式で保存されていて、そのキーに当たる文字列。日本語を使いたい場合は適宜エンコードする
    • expires=値 クライアント側に記録される Cookie の有効期限。Thu, 1-Jan-2030 00:00:00 GMT など
    • domain=値 Cookie を発行する Webサーバーの名前を指定。省略した場合は Webサーバー名(www.tohoho-web.com など)
    • path=値 ここで指定したパス名にマッチするページを参照したときに、ブラウザは保存しておいた Cookie情報をサーバーに送る。path=/tanaka と指定すると、/tanaka にマッチするすべてのページに対して Cookie情報が送る。省略時は、Cookie を設定したページのパス名部になる。
    • secure=値 これを記述しておくと、サーバーとの接続がセキュアである時のみ、Cookie情報が送信されるようになる

domainの部分を見ると、基本的に特に指定しなければdomainは入っていると考えてよいのだろうか。

ただ、パスとかの用語が正確かはちょっと自信無いけど、基本的に同じdomainでpath指定があっている情報をサーバに送る感じなのでしょうか。