1

Cookie に保存したい大きな文字列がありますが、Cookie ごとの最大文字列長と最大 Cookie 数のベスト プラクティスがわかりません。

文字列を分割し、後で一連の Cookie を結合するには、どのロジックを使用すればよいですか?

(Microsoft ADFS とおそらく Siteminder はこの手法を行っているので、その実装に興味があります)

4

1 に答える 1

1

Cookie はブラウザが処理するものであるため、ブラウザごとに制限が異なります。

各サイトの合計 Cookie データにも制限があるため、Cookie の分割は一時的なものにすぎませんが、各ページのデータ転送にオーバーヘッドが追加されます。

Cookie ごとの各ブラウザーの制限:
Internet Explorer は、約 3904 バイトの
最大 Cookie を処理します Mozilla Firefox は、約 3136 バイトの最大 Cookie を処理します

Chrome でいくつかのテストを行うと、大きな Cookie で内部で Chrome がクラッシュし、ページの近くにメッセージが表示されません。

現在、Netscape と Microsoft の両方が、RFC 2109 の総 Cookie 数の制限に基づいて Cookie の数を 300 に制限する対策を講じて います。参照: http://www.cookiecentral.com/faq/#2.5
そのうちの 1 つはハッキングであり、Cookie に完全なビデオをアップロードしてアップロードするサイトをイメージングし、それでハードディスクをいっぱいにします...

ベスト プラクティスは、ブラウザーに小さな Cookie 参照を保持し、それをサーバー上の実際のデータに接続することです。小さいほど、あらゆる面で優れています。

Cookie のテストを作成する方法は、そのようなコードを作成できます。

if(Request.Cookies["cookieTest"] == null)
    Request.Cookies["cookieTest"].Value = "more text into cookie";
else
    Request.Cookies["cookieTest"].Value += "more text into cookie";

// check now the size
Responce.Write(Request.Cookies["cookieTest"].Value.Length);

私の経験では、Cookie で制御されていない大規模なデータを使用しようとすると、予期せぬ問題がランダムに発生することがよくあります。私はサポートが言うことを何度も聞いています: Cookie をクリアして、もう一度やり直してください :)

于 2011-01-05T20:05:44.623 に答える