Cookieの利用方法について - 書き込み編

トップ > プログラミング研究 > Cookieの書き込み
一つ前にもどる 目次にもどる 次のページへ

Cookieの利用方法について - 書き込み編

それでは、実際にPerlでCookieをどのように利用するかを見てみたいと思います。

まずCookieの仕様について必要最低限のことを示したいと思います。先ほどの図でもお分かりのとおり、Cookieはサーバー側からデータを送るのが最初です。このデータを、通常はHTTPヘッダーと呼ばれるHTMLのソースなどでは見えない場所に書き込みます。

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

実際にPerlなどのサーバーサイドプログラムでは下のように書くことになります。

 Perlでの実装方法

 print "Set-Cookie: (~クッキーの中身 )\n";

では、この中身をいっしょに考えていきたいと思います。

Cookieに書き込むパラメーターの解説

NAME=VALUE

ここに、Cookieの名前と内容を書き込みます。たとえば、このCookieの名前を「IMY」、書き込みたい内容を「ABCDEFG」だとすると、

Set-Cookie:IMY=ABCDEFG;

というようになります。
ネットスケープのページにはこの内容の部分は「%XX%XX%XX」というように、URLエンコードされた文字がお勧め、、、とかかれてますが、実際違う方法で書き込むとどうなるのでしょうか。機会があれば実験結果を公開します。上の引用部分でCookieの仕様を書きましたが、全て書き込まれなくても、最低この部分のデータさえあればCookieとして動きます。

expires=DATE

Cookieのデータをサーバーからパソコンに記憶させた場合に、いつまでそのデータが有効か、いつまで保存されるべきかを指定します。このexpires=「~」で有効期限を書き込むと、その日付まで保存されるようになります。

このDATEの部分の書式は下のようになります。

Wdy, DD-Mon-YYYY HH:MM:SS GMT

(Wdy:曜日 / DD: 日 / Mon: 月 / YYYY: 年 / HH: 時 / MM: 分 / SS: 秒)

日本時間の場合に「JST」とか指定ますが、Cookieの場合には「GMT」しか指定できないそうです。ですが、この「expires」というのは先ほどの「NAME=VALUE」と違い必須ではありません。ですから、ここを省略すると、セッションが終了と同時にCookieは消去されます。

domain=DOMAIN_NAME

ここには、Cookieが書き出されたドメイン名が入ります。通常、Cookieは書き込まれたサイトにしかその情報を返しません。AAAというホームページで書き込まれたCookieをBBBというホームページに返したりはしません。(こんなことがおきると、セキュリティー上も問題ですが、、、)

何も指定しなければ、サーバーのホスト名が入ります。

path=PATH

先ほどはドメインでしたが、ここでは更にドメインの中のPath、わかりやすく言うなら、どのディレクトリから受けとったCookieかという情報を書き込みます。逆にここを違うPathに書き換えることで、別のPathにあるCGI用プログラムとかにCookieを渡したりできるようになります。

何も指定しなければ、書き出されたプログラムがあるPathが入ります。

secure

この「secure」というオプションを書き加えると、HTTPS(SSL)といった安全な環境での通信時にしかCookieをやり取りできないようにできます。

一つ前にもどる 目次にもどる 次のページへ
(作成2004/07/16 by あいまい)
(更新2005/2/12)

トップ > プログラミング研究 > Cookieの書き込み

日時: 2008年01月25日 15:23
newsingに投稿BuzzurlにブックマークBuzzurlにブックマークlivedoorクリップに投稿 Choixにブックマーク イザ!ブックマーク このエントリーを含むはてなブックマーク
トップに戻る
このエントリーの所属カテゴリ: プログラミング研究
このエントリーのタイトル:Cookieの利用方法について - 書き込み編



copyright © 2000-2008 all rights reserved
あいまいモード・コム - rss2.0 atom
newsingに投稿BuzzurlにブックマークBuzzurlにブックマークlivedoorクリップに投稿 Choixにブックマーク イザ!ブックマーク このエントリーを含むはてなブックマーク