2011-08-09 5 views
7

状況によっては、特定のページに多数のHTTPリクエストがあり、それぞれが1つの共有クッキーを更新する必要があるということです。ページあたりのリクエスト数を制御することはできませんが、実際には10以上のリクエストがある可能性があります。Cookieを更新する際の競合状態を緩和するための戦略?

最後のhttpリクエストのみがCookieを正常に更新する問題がありましたが、これはブラウザの依存関係によるものだと言われています。

これは一般的な既知の問題ですか、リスクを緩和するための戦略はありますか?

答えて

1

1つの戦略は、変更可能な情報をCookie自体に格納しないようにすることです。代わりに、Cookieをデータベースのレコードをどこかに識別する何らかの並べ替えの識別子にすることができます。次に、サーバーはCookie値を変更するのではなく、(サーバー側の)データベース内の情報を更新します。

+1

ええ、私はそれを恐れていたが、私はそれが私の唯一の選択だと思う。 – Dan

+0

サーバがCookieに変更可能な情報を書き込む場合、同じブラウザに対して複数の異なる識別子が設定される同じ競合状態にはなりませんか? – Nick

0

どのようなリクエストですか?順序を制御しない唯一のものは、画像、スクリプトsrc、iframeのようなものです。そして、それらのCookieを更新するべきではありません。

メインページのCookとHTMLソースのCookを更新する必要があります。その後、あなたはajaxリクエストを持っているなら、注文をコントロールしているので、そこに問題はないはずです。

+0

これは、人々が自分のサイトに置くことができるコードのスニペットです。さまざまな機能があります。したがって、私はコード内でどのように展開されているのかを制御していません。イメージ(ピクセルなど)が呼び出されたときにCookieを更新しないのはなぜですか?結局のところ、画像(スクリプトではない)のようなものに対する同時HTTPリクエストは、競合条件のためにクッキーが失敗する結果となります。簡単なソリューションサーバー側がないようです。 – Dan

関連する問題