2011-02-07 4 views
2

次のシナリオでは良い/スケーラブルなユーザーセッション代替されるもの:トラフィックの多いWebアプリケーションでのユーザーセッションに適した代替方法はありますか?

  • ユーザーが有効になって
  • 255文字の
  • URLクエリ文字列の制限が課されているGET要求の
  • たくさん(クッキーを持っている必要はありません無隠されたフォームフィールド)
  • アプリケーションは、一部のユーザーがプロキシ経由で接続
  • 複数のサーバ(Webファーム)上で実行されます(同じIP)
  • ユーザーが経由で接続HTTPS
  • 人の
  • 50 000同時ユーザー

答えて

3

クライアントが常に同じWebサーバーに接続することを保証できる場合は、SSL IDを単純なセッション追跡メカニズムとして使用できます。一部のWebサーバーでは、この機能が公開されており、Cookieがサポートされていない場合にセッション追跡に自動的に使用されます。

URL自体にセッションIDを含めることに関係なく機能する唯一のソリューションです。 URLにパラメータを追加するのが最も簡単な方法ですが、IDはURLのどこにでも、つまりパスの一部として埋め込むことができます。このIDを使用して、データベースからユーザーに関する情報を取得します。

もちろん、IDスプーフィングやセッションデータベースのボトルネックになる通常の問題が発生します。

0

たぶんURL Rewritingまたはhttp://tinyurl.comまたはhttp://goo.glのようないくつかのURI短縮メカニズムので、あなたがよく255個の文字の下に、あなたのセッションの詳細を渡すことができます。
注:これらのサービスは使用するのではなく、そのメカニズムを使用することを推奨します。

+0

ハムム...私は置かれている。どうして? – JSS

+0

私はあなたに投票しなかった、私は説明を提供します。 URLのクエリ文字列部分だけが文字限定であり、URL全体ではありません。クエリ文字列は、 '?'の後のURLの一部です。 – rancidfishbreath

+0

あなたもどちらもダウンワードしませんでしたが、あなたは本当に彼らに質問に答えませんでした。彼らは、URLの短縮者ではなく、需要の高いウェブサイトのセッションの代替案を知りたい。 –

1

まず、IMHO、セッションの良い代替手段はありません。問題は、クッキーが無効になっているときにどのように取得するのかです。答えはURLパラメータを使用しています。したがって、各リクエスト(リンクやフォームを含む)にセッションIDを追加する必要があります。その他の要件はすべて実際には関係ありません。あなたのロジックをステートレスにして、スケーラビリティに問題がないようにします。すべてのリクエストは、ロード・バランサを介してロジックに到達する必要があります。

0

まず、あなたの要件は非常に厳しいです。私が見る 唯一のオプションは、このようなアプローチを使用している。要するにhttp://code.google.com/p/seaside/

:お使いのシステムは、その後、あなたはセッションオブジェクトを取得するには、DBに行きます http://host/app/@123445568978 ようstatless URLを生成します。

0

50000ユーザーは何をしていますか?サーバへの位置更新を伴うドラッグアンドドロップ、または15分ごとのテキストリンクのクリック最後のケースでは、たくさんのラムを使ってすべてを単一のサーバーに移動します。

+0

は、ほとんどの場合、アカウント内のページを閲覧し、多段階のフォームはほとんどありません。 –

関連する問題