#?SuikaWiki/0.9 [1] [[Cookie]] では [[expires]] 属性の値として日付が使われます。 [[NetscapeのCookie仕様]]では、この形式を [CODE[Wdy, DD-Mon-YYYY HH:MM:SS GMT]] と規定しています。 [[HTTPの日付形式]]に似ていますが、日の指定の要素間に [CODE(ABNF)["-"]] を入れなければいけません。 [3] >>2 の例は Netscape の仕様書からの引用ですが、ここでは''4桁でなければならない''と規定されているはずの年号が2桁になっています。 (それに、 >>1 の構文なら曜日は短い名前のはずだと思うのですがね。) [4] 巷の [[CGI]] script などを見ていると、日付の指定が間違っているものも見受けられます。 [8] >>4,>>6-7 当然、不正な形式に対する動作は未定義です。 とはいえ、 >>2 のように仕様からしてぐちゃぐちゃなので、どうしたものでしょうか。 [9] >>8 もちろん、 >>1 の形式を使えば全ての Cookie 対応 UA で問題なく処理されるはずです。 [10] >>8 そういうのを解説してる書籍とか Web page があるらしいです。ひどいな! [11] [CITE['''['''JavaHouse-Brewers:31373''']''' Re: Cookie.setMaxAge() について]] ([TIME[2001-11-24 20:53:20 +09:00]] 版) >> 「問題」 >> ブラウザがInternet Explorer 5の場合、 = Cookie.setMaxAge()へのパラメータが正の場合、 クッキーは設定されるが、指定された秒数が経過しても、 クッキーは無効にならない。 クッキーの有効期間には、、"木, 9 14 30828 02:48:05"が設定されている。 (クッキー受信時の確認ダイアログで確認) ブラウザを再起動しても、クッキーは有効である。 # NN4.7では、指定された時間が経過するとクッキーは無効になる。 >> = Cookie.setMaxAge()へのパラメータに0を指定した場合、 クッキーが設定されたままになる。 ブラウザを再起動しても、クッキーは有効である。 クッキーの有効期間には、"木, 9 14 30828 02:48:05"が設定されている >> ;; NN4.7では、ブラウザはクッキーを受信した旨をダイアログで表示する。 しかし、その後のリクエストではこのクッキーを送信しない。(期待通り) >「原因」 >Internet Explorer 5(version 3, 4では調べていない)では、 次のようにタイムゾーンがJSTで指定されている有効期限付きSet-Cookieヘッダを 正しく解釈できません。 > [PRE(HTTP example bad code)[ Set-Cookie:NAME=VALUE; expires=Tuesday,28-Feb-2000 19:00:00 JST ]PRE] > IE5では、タイムゾーンがGMTである場合は、クッキーの有効期限が正しく設定されます。 (タイムゾーンがその他の場合の動作は、調べていません。) *例 -[5] [CODE[Fri, 24-Jan-2003 16:41:00 GMT]] -[2] [CODE[Wednesday, 09-Nov-99 23:12:40 GMT]] ;; Netscape の仕様書から -[6] [CODE[Mon, 30 Dec 2020 23:59:59 GMT]] ;; 不正: HTTP 形式 -[7] [CODE[Thursday, 31-Dec-2037 00:00:00 JST]] ;; 不正: 長い曜日名, 未定義の時間帯名 [[#comment]] *メモ