HTTP Cookie (クッキー)
概要
Cookie(クッキー)は次のような機能を作るために使用する。
- 訪問者がそのページに何回訪問したかを記録して表示する。
- Web サービスで訪問者が最近訪問したページを記録し、次回訪問時にそのページを表示する。
- 掲示板やチャットで入力したユーザー名を記録し、次回訪問時にユーザー名の入力を省略する。
- ログインでセッションを維持する。
以下の仕様書が公開されている。
このようなデータは CGI などを利用してサーバー側に記録することもあるが、Cookie を利用することでクライアント側、つまりブラウザーを起動する側のハードディスクに Cookie 情報データを記録することもある。
Cookie 情報が保存されるフォルダーとファイル
Cookie 情報が保存されるファイルは OS やブラウザーのバージョンによって異なる。
Windows の場合は次のようなフォルダーやファイルに記録される。
- C:\Document and Settings\(UserName)\Cookies
- C:\Program Files\Netscape\Users\(UserName]\cookies.txt
- C:\Program Files\Netscape\Navigator\cookies.txt
- C:\Windows\Cookies\~.txt
macOS の Chrome の場合は以下に保存される。
- ~/Library/Application Support/Google/Chrome/Default/Cookies
Cookie の書き込み
JavaScript を使用して Cookie を設定するときは次のようにする。
document.cookie = "~";
HTML で指定する場合は次のようにする。この方法は推奨されない。
<meta http-equiv="Set-Cookie" content="~">
~ 部分には次の形式の文字列を指定する。
NAME=値; expires=値; domain=値; path=値; secure
NAME=値; 以外は任意である。
| パラメーター | 意味 |
|---|---|
NAME=値 |
任意の名前に任意の値を指定する。セミコロン、カンマ、空白文字、日本語や韓国語などを使う場合は適切な形式でエンコードする。 |
expires=値 |
クライアント側に記録される Cookie の有効期限を Thu, 1-Jan-2030 00:00:00 GMT のような形式で指定する。省略するとブラウザー終了時まで有効である。 |
domain=値 |
Cookie を発行する Web サーバー名を指定する。 |
path=値 |
ここで指定したパス名と一致するページを閲覧するとき、ブラウザーは保存された Cookie 情報をサーバーへ送る。 |
| secure | この変数を入れると、サーバーとの接続が安全な場合にだけ Cookie 情報が送信される。 |
Cookie 書き込み例
最も簡単な書き込み例は次のとおりである。
Set-Cookie: NAME=devkuma;
有効期限を指定する場合は次のようにする。
Set-Cookie: NAME=devkuma; Tue, 31-Dec-2030 23:59:59;
Cookie の読み取り
JavaScript を使用して Cookie 値を読むには、document.cookie の値を参照する。
alert(document.cookie);