Cookieエミュレーション
※Cookieエミュレーションは、Durian 4.6以降で対応しています。
Cookieエミュレーションの概要
Cookieが使用できない端末からのアクセス時にも、Durian が Cookie をシミュレートしてアプリケーションへ Cookie ヘッダを送信する機能です。アプリケーションは通常通り Set-Cookie ヘッダをレスポンスに返すと、次回リクエストからアプリケーション側では Cookie ヘッダから Cookie 情報が取得できるようになります。
Durian は Cookie が使用できない端末に対し、クエリーパラメータで Cookie 情報を引き継ぐことで Cookie 情報の保持を行っています。Cookie 情報はセッションやファイルに保持しません。
Cookie エミュレーションの仕様
バージョン
Netscape 策定の Cookie 仕様と RFC2109 の Cookie 仕様に対応しています。アプリケーション側へ送信されるCookieヘッダは Netscape 策定の Cookie 仕様に準じます。
Cookie の名前
管理ツールで指定した Cookie の名前のみが Coookie エミュレーションの対象となります。管理ツールで指定していない Cookie 名は対象外となります。
Cookie の有効期限
有効期限は分単位となります。分単位への変換で秒を切り捨てるため、Expires 属性や Max-Age 属性で指定した有効期限より前に Cookie が無効化されます。
セッションCookie
サーバー側でブラウザの終了を検知できないため、セッション Cookie は最終アクセス日時から一定期間後(初期値:30分後)を有効期限としてシミュレートします。
domain属性、path属性、secure属性
いずれも無視されます。 Cookie が有効なURLの範囲は、 Cookie 発行後のページから相対URLリンク、パラメータ付加対象ホストに含まれる絶対URLリンクもしくはリダイレクトで遷移できるURLとなります。
Cookie 情報の暗号化
Cookie 情報はリンクにパラメータ付与される際、暗号化することができます。なお、暗号化を行ったときのみ、Cookie の有効期限がシミュレートされます。
注意事項/制限事項
- 複数台のサーバーにDurianをインストールする場合、暗号化キーは同一キーを設定してください。
- Set-Cookie ヘッダに指定したdomain属性、path属性、secure属性の指定は無効です。
- 有効期限の指定(Expires および Max-Age)は秒単位ですが、有効期限は分単位で計算されます。
- Cookie 情報が多くなるに従いクエリー文字列の長さも長くなり、機種によってはページ遷移できない場合もありますので、Cookie に設定する名前や値の長さおよび個数には注意が必要です。