http://www.thedevheaven.com/2012/05/state-management.html
状態管理は、同じページまたは異なるページに対する複数の要求に対して、状態とページの情報を維持するプロセスです。
状態管理の種類
状態管理には 2 つのタイプがあります。
- クライアント – サイド ステート管理 Web ページ、Uniform Resource Locator (url)、または Cookie に情報を埋め込むことにより、クライアントのコンピュータに情報を保存します。クライアント エンドで状態情報を保存するために使用できる手法を以下に示します。
を。ビュー ステート – Asp.Net は、ビュー ステートを使用してコントロールの値を追跡します。ビューステートにカスタム値を追加できます。Asp.net ページ フレームワークで使用され、ページにレンダリングする直前にページと各コントロールの値を自動的に保存します。ページがポストされると、ページ処理によって実行される最初のタスクの 1 つは、ビュー ステートを復元することです。
b. コントロールの状態 – ビュー ステートが適切に機能する必要があるカスタム コントロールを作成する場合は、コントロールの状態を使用して、他の開発者がビュー ステートを無効にしてコントロールを壊さないようにする必要があります。
c. 非表示フィールド – ビュー ステートと同様に、非表示フィールドは、ユーザーのブラウザーに表示せずに HTML フォームにデータを格納します。データは、フォームが処理されたときにのみ使用できます。
d. Cookie – Cookie は、ユーザーのブラウザーに値を保存し、ブラウザーがすべてのページ要求と共に同じサーバーに送信します。Cookie は、Web サイト上の複数の Web ページで使用できる状態データを格納するための最良の方法です。
e. クエリ文字列 - クエリ文字列は、ユーザーに表示される URL に値を格納します。ユーザーが URL を使用して状態データを電子メールまたはインスタント メッセージで送信できるようにする場合は、クエリ文字列を使用します。
- サーバー – サイドステート管理
を。アプリケーションの状態 - アプリケーションの状態情報は、どのユーザーがページを要求したかに関係なく、すべてのページで利用できます。
b. セッション状態 – セッション状態情報は、ユーザーが 1 回の訪問で開いたすべてのページで利用できます。
アプリケーションを再起動すると、アプリケーションの状態とセッション状態の両方の情報が失われます。アプリケーションの再起動間でユーザー データを保持するには、プロファイル プロパティを使用して保存できます。
利点
クライアント側の状態管理の利点:
スケーラビリティの向上: サーバー側の状態管理により、Web サーバーに接続する各クライアントは Web サーバー上のメモリを消費します。Web サイトに数百または数千の同時ユーザーがいる場合、状態管理情報を格納するために消費されるメモリが制限要因になる可能性があります。この負担をクライアントに押し付けることで、潜在的なボトルネックが解消されます。
複数の Web サーバーのサポート: クライアント側の状態管理を使用すると、Web サーバーが要求を処理するために必要なすべての情報をクライアントが提供するため、アプリケーションに変更を加えることなく、受信した要求を複数の Web サーバーに分散できます。サーバー側の状態管理では、クライアントがセッションの途中でサーバーを切り替えた場合、新しいサーバーが必ずしもクライアントの状態情報にアクセスできるとは限りません。サーバー側の状態管理で複数のサーバーを使用できますが、インテリジェントな負荷分散 (クライアントからの要求を常に同じサーバーに転送するため) または集中状態管理 (すべての Web サーバーが管理する中央データベースに状態が格納される場合) のいずれかが必要です。アクセス)。
サーバーの利点 – サイドステート管理:
より優れたセキュリティ: クライアント側の状態管理情報が (転送中またはクライアントに格納されている間に) キャプチャされたり、悪意を持って変更されたりする可能性があります。したがって、クライアント側の状態管理を使用して、パスワード、承認レベル、認証ステータスなどの機密情報を保存しないでください。
帯域幅の減少: 大量の状態管理情報を保存する場合、その情報をクライアントに送受信すると、帯域幅の使用率とページの読み込み時間が増加し、コストが増加してスケーラビリティが低下する可能性があります。帯域幅の使用量の増加は、モバイル クライアントに最も大きな影響を与えます。モバイル クライアントの接続は非常に低速であることが多いためです。代わりに、大量の状態管理データ (たとえば、1 KB 以上) をサーバーに保存する必要があります。