状態管理とメンテナンスでAsp.netは、ViewStateの、クッキー、セッション、アプリケーション、キャッシュ5つの方法を含み、ここではその比較のいくつかは以下のとおりです。
1.クライアントまたはサーバに存在します
- クライアント:
ビューステート、クッキー
- サーバー:
セッション、アプリケーション、キャッシュ
*セッション:サーバー上のストレージは、4、メモリ(最も一般的)、ASP.NET状態サービス(Windowsサービス)、データベース、カスタム状態プロバイダを含み
2.有効時間
- ビューステート:
限りページが閉じられるよう、そのステータスが無効です
- クッキー:
一時的なクッキーと永続クッキー、一時的なクッキー含めると、ブラウザのメモリに存在している限り、ブラウザが閉じられると、一時的なクッキーが失敗し、永続的なCookieは、ディスク上に格納され、有効期限のクッキーオブジェクトに設定されているので、デッドタイムの後に無効であるとされます。クライアントブラウザとブラウザのクッキーにより、クッキーの制御は容量が限られている保存することができますので、ブラウザは、クッキーをサポートするブラウザで人工クッキーやブラウザのクッキーの容量を削除しない場合には限界がクッキーを期限切れになり超えます。
- セッション:
この時間の後、セッションは自動的に無効状態のセッションのタイムアウト、
- 応用:
サーバーを再起動するまでこの状態が有効です。
- キャッシュ:
主に2つの方法で無効に設定キャッシュ:まず、依存関係が変更された場合、依存関係を設定することにより、第二有効期限を設定し、かつ、キャッシュ無効
3.データフォーマットを記憶することができます
- ビューステート:文字列
- クッキー:文字列
- セッション:オブジェクトを保存することができます
- アプリケーション:オブジェクトを保存します
- キャッシュ:オブジェクトを保存することができます
4.場合は、クライアントとサーバーの相互作用との関係
- ビューステート:
クライアントとサーバとの相互作用は、現在のページビューの状態を送信したり、操作することができます
- クッキー:
一般的には、ユーザーがサーバーにリクエストを送信するたびにサーバクッキーに現在のすべてのサイトを送信しますが、特定のパスは、その後、アクセスのみを提供されている場合、(パスとHttpCookieクラスは、属性ドメインを含む)クッキーのパスを設定することができパスは、クッキーがサーバに送信される時期
- セッション:
同じセッション、サーバーとクライアントを使用して、同じ場所で異なるリソースへのクライアントアクセスは、通常、それは、クライアントのセッションIDに保存され、クッキーによって関連付けされ、それぞれがセッションIDしばらくサーバに要求を(開始されます「ASP.NET_SessionId」という名前のCookieの主キー)も、一緒に持って来るサーバは、対応するクライアントセッションを見つけることができるように、セッションIDを取得し、これだけの関連サイトやクライアントとのセッション。
- 応用:
すべてのクライアントが同じアプリケーションを共有し、それがグローバルであります
- キャッシュ:
すべてのクライアントが同じキャッシュは、それがグローバルで共有しますが、それは、そのようなときに障害設定など、より細かく制御を持っています
アプリケーションのシナリオ
ビューステート:唯一あるASP.NETのWebフォームは、各サーバ側制御としては、ビューステートを含有します
クッキー:一般的にクッキーの毛でそれに対応する情報を見つけることができ、サービス側にいくつかの識別情報を格納するので、サーバーの後に行くために使用され、また、パスワードや他のアカウント関連の情報を格納するために使用されます
セッション:指定されたクライアントは、共通の状態を維持するために、特定の状態情報を保存します
アプリケーション:グローバル状態情報を保存するためには、そのようなサイトへの訪問数など、
キャッシュ:グローバル状態情報を保存し、有効期限の情報がより良好に制御することができます