No.07 Cookieの概念と動作例
02 格納される基本的な書式
 
 Cookieは、データの書き込みをブラウザに依存しているので、どのような形式で情報が書き込まれているかといったことを意識する必要はあまりありません。 実際、ブラウザによって書き込まれる書式は異なってきますので、ここでは、どのような情報を書き込むかといった事を中心に話をすることにします。

 Set-Cookie: NAME=VALUE; expires=DATE;
 domain=DOMAIN_NAME; path=PATH; secure
 

 Cookieを規定しているNetscape社リファレンス(http://www.netscape.com/newsref/std/cookie_spec.html)に規定されているCookieの書き込み情報は以上になります。 若干OSやブラウザに依存して書き込みできる情報が異なることがありますが、基本的には上記で問題は無いでしょう。
 うち、書き込まないといけない最低限の情報は「NAME」「value」の2つになります。 つまり、書き込む情報の名前と、その情報の内容を書き込めばよいわけです。

 NAME=VALUE  Cookieに格納されるデータの名前と値を格納します。 この情報は必須入力で、省略はできません。
データはエスケープコードで格納することが義務付けされており、escape()メソッドを用いて変換をして格納する必要があります。
 expires=DATE  Cookieをいつまで残すかといった有効期限を格納します。 省略した場合、そのブラウザを閉じたと同時にCookieの情報も破棄されます。
domain=DOMAIN_NAME  Cookieを有効にする対象のドメインを何処にするかといった設定を書き込むことになります。省略すると、実行したHTMLの格納されているドメインが記録されます。
 path=PATH  ドメインの後のパス情報を格納します。 マッチングによるチェックになるので、
   /abc
   /abcde
 の2つのパスは、「/abc」と指定することでともに対応することになります。
 省略すると、HTMLの格納されているパスが記録されます。



 さて、基本的に注意しなくてはならないのは、文字列をエスケープコードで記録する必要がある位ですが、もうひとつ、「有効期限」は、終了までの期限をミリセカンド単位で指定する必要があるので注意が必要になります。
 ミリセカンド( 1/1000 sec ) での記録ですから、下記のような書式を用いる必要があるということです。
 1分 60 * 1000
 1時間 60 * 60 * 1000
 1日 24 * 60 * 60 * 1000
 1年 365 * 24 * 60 * 60 * 1000

 書式というほどたいそうな物ではないですし、阿呆みたいなことを書いて申し訳ないですが、以上のような書式を用いることになります。 ですから、例えば20日有効なCookie を造ろうと思ったら、「 DATE 」「 20 * 24 * 60 * 60 * 1000 」とするか、「1728000000」と指定する必要があるということになります。



ページの最上段へ移動します