2

Web アプリケーション開発の基礎を学びたいと思っています。ASP.Net Web Forms、ASP.Net MVC などのさまざまなアプローチを読んでいたので。ほとんどのチュートリアルでは、MVC などについて説明するときに「ステートレス」という用語に言及しています。用語を正しく取得できませんでした。それについて少し説明していただけませんか。

ありがとう

4

3 に答える 3

7

これは、Web アプリケーション全般を意味します。ステートレスとは、サーバーとクライアントの間に永続的な接続がないことを意味します。クライアントは「Hey google.com、そのサイトを教えてください」と言い、Google の応答..その後、接続が閉じられます。

さらに情報が必要ですか?

于 2011-07-19T11:56:18.280 に答える
7

ここでの状態とは、接続されたクライアントごとにサーバーが維持する対話状態を指します。(MVC とは何の関係もないことに注意してください。)

または言い換えれば:

ハンバーガー店に入ると、カウンターの後ろに何人かの人が注文を手伝っています。

バーガー ジョイントのプロセスは、カウンターの後ろにいる人々とのやり取りのたびに、カウンターの後ろにいる従業員のいずれかが顧客にサービスを提供できる場合、「ステートレス」です。たとえば、「ハンバーガーをください」と言うと、誰かがあなたにハンバーガーをくれます。あなたは「キャッチアップ?」と言いますか?そして他の誰かがあなたが求めたものをあなたに与えます。

それが「ステートフル」なバーガー ジョイントである場合は、キューを形成し、各クライアントがカウンターの後ろに特定の人を配置して、注文全体を確認します。

違いは何ですか?

最初のケースでは、カウンターの後ろの従業員に何が起こっても、注文は段階的に進行します。各ステップは異なるワーカーによって処理された可能性があります (または、同じワーカーがすべてをランダムに処理する可能性もありますが、それは単なる偶然です)。カウンターへの注文を続行するだけです。

2 番目のケースでは、サーバーへの注文の途中で何かが発生した場合、会話の状態を別のサーバーに渡して、引き続きサーバーに送信できるようにする必要があります。それ以外の場合は、ゼロから始める必要があります。状態を保存するには少し手間がかかります。状態をどこかに書き留めておく必要があります。サーバーが動作していない場合は、注文を引き継ぐ他のサーバーがその状態を取得し、残っていた場所でやり取りを再開する必要があります。オフ。

ランチラッシュに向けてハンバーガー店を拡大してみませんか?

どちらの場合も、マネージャーはカウンターの後ろに新しいワーカーを追加するだけです。

最初のケースのステートレスな状況を考えると、新しい労働者はオペレーションに参加し、注文の途中でクライアントに貢献し始めることができます。「キャッチアップ?」と言う人もいます。そしておそらく、新しいサーバーが「どうぞ」と戻ってきます。

2 番目のケースでは、追加の各サーバーは新しい注文のみをサポートできます (ただし、既に進行中の注文はサポートされません)。

于 2011-07-19T12:25:01.613 に答える
2

http://en.wikipedia.org/wiki/Stateless_server

簡単な例では、ステートレス環境にいる場合、変数 (ユーザー名など) を変更できますが、ページをリロードすると (Web アプリケーションについて話しているため)、その変数はリセットされます。これがステートレスと呼ばれる理由です。2 つの状態の間に永続性はありません (たとえば、すべてのページの更新は状態です)。

于 2011-07-19T11:59:33.670 に答える