【メモ】Cookie(野性爆弾ではない)


COOKIEデータ

名前と値のセットで指定する。
EX) name=kawashima;

有効期限

以下の2種類のいずれかの方法でセットする。両方指定していた場合はmax-ageが優先される。
未設定の場合はセッション切れとともに消滅する。

expires

消滅までの日付をUTC形式でセットする。

365日後に消滅する例

expires='Fri, 21 Aug 2020 04:41:48 GMT';

UTC形式取得方法(javascript)

1年後の日付をUTCで取得する関数です。
コピペする場合、関数名や引数とかは適宜変えて下さい。

sample.js
function cookieDeadlineUTC(days=365){
  var expire = new Date();
  expire.setTime(expire.getTime() + 1000*3600*24*days);
  return expire.toUTCString();
}

max-age

消滅までの秒数でセットする(IE6,7,8は非対応)

10分後に消滅する例

max-age=600;

有効範囲

セットしたCOOKIEの有効範囲をセットする。

domain

未設定:現ドメイン下で有効になる。ただしサブドメインは対象外。
設定:現ドメイン、サブドメイン下で有効になる。

ketabawo.asia内で有効化する例

domain=ketabawo.asia;

path

複数指定は半角カンマで区切れば良さそう(要調査)でも基本はドメインルート(未設定or[/])指定でOK。
未設定:対象ドメイン下で有効となる。
設定:セットしたディレクトリ下で有効となる

/hogeディレクトリ下で有効にする例

path=/hoge;

まとめ

10日間、ドメインgoogle.com内で有効なクッキー名「user」、値「premium」をセットする例

sample.js
document.cookie = 'user=premium; max-age=86400; domain=google.com;';

pathは未設定でルートとなるため指定しない

削除するには?

max-ageを0にすれば消えます。
もし消えない場合はdomainやpathも空の値でやってみてください。

上記cookieを消す例

sample.js
document.cookie = 'user=; max-age=0;';
//もしくは
document.cookie = 'user=; max-age=0; domain=; path=;';