私はクッキーについていくつかの基本的なことを見逃しているに違いない。私は、サーバー側でクッキーを設定localhostを、オンとローカルホスト(または.localhost)として明示的にドメインを指定します。一部のブラウザではCookieが受け入れられないようです。
Firefox 3.5: FirebugでHTTPリクエストを確認しました。私が見るのは:
Set-Cookie:
name=value;
domain=localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
または(ドメインを.localhostに設定した場合):
Set-Cookie:
name=value;
domain=.localhost;
expires=Thu, 16-Jul-2009 21:25:05 GMT;
path=/
どちらの場合も、Cookieは保存されません。
IE8:追加のツールは使用していませんが、Cookieは保存されていないようです。Cookieは後続のリクエストで返送されないためです。
オペラ9.64:ローカルホストと.localhost両方の仕事が、私は環境設定でクッキーのリストをチェックしたときに、それがローカルホストの下にリストされていていても、ドメインは(グループ化リスト内)localhost.localに設定されています。
Safari 4: localhostと.localhostはどちらも機能しますが、環境設定では常に.localhostとしてリストされます。一方、明示的なドメインのないcookieは、ローカルホスト(ドットなし)としてのみ表示されます。
localhostの問題は何ですか?このような多くの不整合があるため、localhostに関連するいくつかの特別なルールが必要です。また、ドメインの前にドットを付ける必要がある理由は完全にはわかりません。RFC 2109は次のように明示的に述べています。
ドメイン属性の値に埋め込まれたドットが含まれていないか、ドットで始まっていません。
どうして?この文書は、セキュリティに関して何かしなければならないことを示しています。私は仕様全体を読んでいないことを認めなければなりません(後で読む可能性があります)が、少し奇妙に聞こえます。これに基づいて、localhostにcookieを設定することは不可能です。