各携帯端末のCookieについてまとめ

Set-Cookie: name=value; Expires=date
Set-Cookie: name=value; Max-Age=second

携帯端末全般に言えること。

  • Cookieにセットするname, valueは、適切にエスケープすること。
  • 有効期限の指定は、Max-Age記法に対応している場合は、なるべくそれを使うようにすること。
  • 一度にたくさんのSet-Cookie:を発行しないこと。
    (なるべく1つのSet-Cookie:にデータをまとめる)

VodafoneのCookie

  • W型*1/3GC型*2端末のみ対応
  • 一時型/期限型とも対応
    • ただし、一時型にするには、Expires, Max-Ageともに記載無しでなければならない。
    • 期限型の場合は、Expires, Max-Ageいずれかがあれば良い。
  • Max-Age記法の場合は、Version=1;を記述する必要があるかもしれない。

EZwebのCookie

  • 全端末対応
  • 期限型のみ対応

EZwebでは、有効期限の指定を、

Expires=date;

ではなく、

Max-Age=second(有効残存秒数);

で指定するようにしましょう。
EZwebでは、SSL通信でない限り、Cookieゲートウェイサーバに保存されます。
有効期限をExpires=date;で指定すると、GMT*3ではなく、EZwebゲートウェイサーバの時間帯で有効期限がチェックされるようです。
この為、セットした有効期限と実際の有効期限にズレが生じる場合があります。
※Max-Age記法は、cookie バージョン1の仕様ですが、Set-Cookie:にVersion=1;を明記しなくてもEZwebの場合は動作します。


また、EZwebホームページを作ろう! 技術情報によると、

デフォルトの有効期限
「max age」の有効期限の指定がない場合、そのCookieの有効期限はデフォルトで「1日(24時間)」となります。

..と、あります。
しかし、私が以前確かめた時(2004/05頃)は、有効期限の指定がない場合は永続的なCookie(確か33年有効)になったような気がするのですが。。。
ゲートウェイサーバの仕様が変更になったのかな?
一度確かめ隊。

iモードのCookie

  • 全端末対応

iモードのCookie非対応に泣かされている開発者は多いのではないでしょうか?

AIR-HDGE PHONEのCookie

  • 全端末対応
  • 一時型/期限型とも対応
    • Max-Age記法には未対応

*1:ブラウザver5.x

*2:ブラウザver1.x

*3:グリニッジ標準時