Resonse Header Set Cookie difference in cross browser


もっと読む
もしあなたのプロジェクトの中でserver端でcookieをclient端に書き込む必要があるならば、例えばJSPに下記のコードを書きます。


次の情報がレスポンスheaderの中にあります。

Set-Cookie	testCookie=testValue; Expires=Wed, 02-Jul-2014 13:01:13 GMT; Path=/
なお、IEの下とChrome/Firefoxの下では、「Set-Cookie」の処理は全く違っており、IEはbase on client側の時間でcookie expire timeを計算する。
Chrome/Firefoxはbase on server端の時間です。cookie expire timeを計算します。
So、cookie expireの期限が切れている時間に対して、高いシーンを求めています。特に気をつけてください。
上のコードを例にとって、本来はcookieが60秒後で期限が切れることを要求しています。もしclientの端が彼女のlocal timezoneの標準時間より速いなら、more thanは60秒です。例えば、標準時間は10:00 pmですが、clientのsystem timeは10:01:01 pmです。server端は彼女のlocal timezoneの標準的な時間で、どのようにこのcookieはIEの下ですべてすぐ期限が切れるのです!
---add some finding:
reponse headerの中のExpiresは絶対期限が切れる時間を指して、IEはこの絶対期限が切れる時間とclient端の時間を持つのです。正反対です。firefoxとChromeは彼女とserver端の時間を比べて、Soはこのようなbehaviorの違いをもたらしました。
レスポンスheaderの中に比較的期限が切れる時間を設定できます。「Max-Age」はこの問題をよく解決できます。
次のコード:

response.addHeader("Set-Cookie", "testCookie2=test2; Max-Age=60; Path=/");
レスポンスheaderは以下の通りです。

Set-Cookie	testCookie2=test2; Max-Age=60; Path=/
彼女は相対的な時間なので、NO materのあなたのclient端の時間は何ですか?Max-Ageの時間にクッキーを確保できます。IE/Firefox/Chromeでテストに合格しました。