Web アプリケーション開発の基礎を学びたいと思っています。ASP.Net Web Forms、ASP.Net MVC などのさまざまなアプローチを読んでいたので。ほとんどのチュートリアルでは、MVC などについて説明するときに「ステートレス」という用語に言及しています。用語を正しく取得できませんでした。それについて少し説明していただけませんか。
ありがとう
Web アプリケーション開発の基礎を学びたいと思っています。ASP.Net Web Forms、ASP.Net MVC などのさまざまなアプローチを読んでいたので。ほとんどのチュートリアルでは、MVC などについて説明するときに「ステートレス」という用語に言及しています。用語を正しく取得できませんでした。それについて少し説明していただけませんか。
ありがとう
これは、Web アプリケーション全般を意味します。ステートレスとは、サーバーとクライアントの間に永続的な接続がないことを意味します。クライアントは「Hey google.com、そのサイトを教えてください」と言い、Google の応答..その後、接続が閉じられます。
さらに情報が必要ですか?
ここでの状態とは、接続されたクライアントごとにサーバーが維持する対話状態を指します。(MVC とは何の関係もないことに注意してください。)
または言い換えれば:
ハンバーガー店に入ると、カウンターの後ろに何人かの人が注文を手伝っています。
バーガー ジョイントのプロセスは、カウンターの後ろにいる人々とのやり取りのたびに、カウンターの後ろにいる従業員のいずれかが顧客にサービスを提供できる場合、「ステートレス」です。たとえば、「ハンバーガーをください」と言うと、誰かがあなたにハンバーガーをくれます。あなたは「キャッチアップ?」と言いますか?そして他の誰かがあなたが求めたものをあなたに与えます。
それが「ステートフル」なバーガー ジョイントである場合は、キューを形成し、各クライアントがカウンターの後ろに特定の人を配置して、注文全体を確認します。
違いは何ですか?
最初のケースでは、カウンターの後ろの従業員に何が起こっても、注文は段階的に進行します。各ステップは異なるワーカーによって処理された可能性があります (または、同じワーカーがすべてをランダムに処理する可能性もありますが、それは単なる偶然です)。カウンターへの注文を続行するだけです。
2 番目のケースでは、サーバーへの注文の途中で何かが発生した場合、会話の状態を別のサーバーに渡して、引き続きサーバーに送信できるようにする必要があります。それ以外の場合は、ゼロから始める必要があります。状態を保存するには少し手間がかかります。状態をどこかに書き留めておく必要があります。サーバーが動作していない場合は、注文を引き継ぐ他のサーバーがその状態を取得し、残っていた場所でやり取りを再開する必要があります。オフ。
ランチラッシュに向けてハンバーガー店を拡大してみませんか?
どちらの場合も、マネージャーはカウンターの後ろに新しいワーカーを追加するだけです。
最初のケースのステートレスな状況を考えると、新しい労働者はオペレーションに参加し、注文の途中でクライアントに貢献し始めることができます。「キャッチアップ?」と言う人もいます。そしておそらく、新しいサーバーが「どうぞ」と戻ってきます。
2 番目のケースでは、追加の各サーバーは新しい注文のみをサポートできます (ただし、既に進行中の注文はサポートされません)。
http://en.wikipedia.org/wiki/Stateless_server
簡単な例では、ステートレス環境にいる場合、変数 (ユーザー名など) を変更できますが、ページをリロードすると (Web アプリケーションについて話しているため)、その変数はリセットされます。これがステートレスと呼ばれる理由です。2 つの状態の間に永続性はありません (たとえば、すべてのページの更新は状態です)。