Operaで、はてなブックマークのAutoPagerizeの設定などが維持されなくなったので、その原因を調べたら(1ドメインあたりの)Cookieの上限数を超えていた*1からだったみたい。
クッキーは、「名前=値」の1つの組みを1個と数えます。変数1個がクッキー1個に相当します。Netscapeの仕様およびRFC 2109(obsolete)によると、クライアントは1つのホストまたはドメイン名につき最低でも20個のクッキーをサポートする必要があります。20個の変数が使えることになります。
http://www.teria.com/~koseki/memo/cookie/cookie_4k.html
の通り、仕様上の制限は知っていたけど、実装がどうなっているのかを(大きさでではなく)数の制限について調べてみた。
ブラウザ | 個数 |
---|---|
IE6/7 | 50 |
Firefox3.0.5 | 50 |
Opera9.63 | 30 |
Opera11.01 | 60 |
Safari3.2.1(win) | 無制限? |
Google Chrome | 50-70? |
- 基本的に、古いのから消えていく。
- IEは20のバージョンもあるらしい http://support.microsoft.com/kb/941495/ja
- Safari3は1万個発行できたので、実質の制限はなさそう。(Macについては今は手元にないので後で調べる。かも。)
- Google Chromeはなぜか個数がランダム。
- Operaは11.01で確認したところ60個に増えていました。どのバージョンから増えたのかは確認していません。
もちろん、一個当たりのCookieのサイズが大きい場合、保存できる数も少なくなります。
ttp://ss-o.net/test/cookie.html でテストできますが、cookieをそのまま表示するので一応注意。
少々古いですが、クッキーの最大サイズ制限についても参考に。