Cookie の有効期限を指定できるヘッダー Max-Age があります。残念ながら、Internet Explorer 6、7、8、およびおそらくそれ以降は Max-Age をサポートしておらず、GMT の絶対日付を含む Expires ヘッダーが必要です。
特定のクライアントの GMT 時間と TZ 設定が正しくないことは珍しくありません。タイムゾーンを正しく定義していないユーザーを考えて、時計を手動で調整します。
それ以上に、ユーザーが気付いていない数分の重大なクロック スキューが存在する場合があります。
その場合、GMT 時間が数時間ずれる場合があります。効果的には、サーバーが短い有効期限を必要とする Cookieを設定するのを防ぎます。TZ が正しくない場合、最大有効期間が 10 分の Cookie は設定されないことを考慮してください。
問題を解決する方法に関する独自のアイデア (機能しない、または問題がある):
- もちろん、Max-Age を使用するか、すべてのブラウザが「Expire」部分を無視するため、両方を指定するのが最善ですが、IE では機能しません。
- 私が考えた別の方法は、 Date: ヘッダーを設定することです.うまくいけば、IEは時計のずれを回避するために差を計算することを知っているでしょう.しかし、それはIEを助けません.
- 要求時に (JavaScript を使用して) クライアントから時刻を取得し、時計の差を計算してから、必要に応じて Expire ヘッダーを調整します。ただし、時間をサーバーに送信する方法など、複雑なデータ操作が必要です。
質問:
- IE で Cookie の有効期限を処理するための最善かつ一般的な方法は何ですか?
- アプリケーションでどのように行うのですか