以外と知らないCookieの仕様
・クライアントが一度に溜めておくことができるCookieの数には限界が存在します、これは、クライアントが受け取り保存するために用意されるべきのCookie最小数の仕様です
・Cookieの数は、トータルで300個までです
・1つのCookieにつき4KBまでで、name と OPAQUE_STRING は、4KBまでの形式に結合されます
・サーバもしくはドメインごとに、クッキーの数は20個までです
RFCではCookieの最大サイズは4Kbyteという制約を設けています、世の中の万物限度というものが存在しているように Cookieのサイズ指定があるのも例外ではないわけです。今回は4Kbyteという制限に注目し、本当に4Kbyteという制約は守られているのか、クライアント、サーバ側でテストをおこなってみることにしました。
テスト内容
[クライアント側テスト環境]
OSパターン1 - Linux(CentOS4.4)OSパターン2 - Windows(XP)
ブラウザパターン1 - Firefox2.0(Linux版)
ブラウザパターン2 - Firefox2.0(Windows版)
[サーバ側テスト環境]
Cookie発行プログラム使用言語 - PHP5.2Cookieを発行条件 - ブラウザ経由でアクセスした際に無条件でCookieを発行する
<?PHP
// 最大4092byte(4K)のデータを生成する
for ($i = 0; $i < 4092; $i++) {
$data .= 1;
}
setcookie(strlen($data),$data,time()+60,"/","hoge.jp");
?>
テスト結果
Firefoxでは最大4092byteのCookieを取得する亊が確認できました。Cookieは名前も4Kの制限に含めるため
4 + 4092 = 4096 すなわち 4Kbyte
名前=値
4092=11111111111111111111111111111111111........1111
↑ ↑
(4byte) (4092byte)
[Trackback URL for this entry]
XML

