Open masa401 opened 5 years ago
もっと深く。自分が作る場合に何が必要?
Webサーバー
- クライアントからのリクエストに応じて、コンテンツのレスポンスを担当する。
アプリケーションサーバー
- Webサーバーからのリクエストに応じて、動的コンテンツの生成を担当する。
DBサーバー
- アプリケーションサーバーからのリクエストに応じて、データの取得/更新/削除を担当する。
「リクエスト」、「レスポンス」とは何でしょうか? Webアプリケーションが動くとき、それぞれのサーバーの間では、どのような流れでデータのやり取りが行われますか? 調べた情報を整理して、自分の言葉でまとめていただけたらと思います。
Webアプリケーションが動くとき
- webサーバの処理要求をアプリケーションサーバに渡します、アプリケーションサーバでその要求の処理結果をwebサーバに返します。
- アプリケーションサーバのデータ要求をDBサーバに渡します。DBサーバから要求したデータをアプリケーションサーバに返します。
Webサーバーの処理要求は、どのようなきっかけで発生するのでしょうか?
Webサーバーの処理要求は、どのようなきっかけで発生するのでしょうか?
- クライアントが操作をして、結果を求めるとき処理要求が発生します。
「クライアント」とは何でしょう?
Webアプリケーションが動くとき
- webサーバの処理要求をアプリケーションサーバに渡します、アプリケーションサーバでその要求の処理結果をwebサーバに返します。
- アプリケーションサーバのデータ要求をDBサーバに渡します。DBサーバから要求したデータをアプリケーションサーバに返します。
Webサーバーの処理要求は、どのようなきっかけで発生するのでしょうか?
- クライアントが操作をして、結果を求めるとき処理要求が発生します。
サーバーの説明にあった「リクエスト」や「レスポンス」といった言葉は入っていませんが、Webアプリケーションの処理の流れの中で、「リクエスト」「レスポンス」に当たる部分は、それぞれどこなのでしょう?
@ino008 ↑「こういうことやで」ということを説明してあげて。
@ino008 すみません、質問の意味がよくわかりません。 私の理解では、webサーバでのクライアントはユーザの操作を指してます。
@ino008
これはgitの使い方の説明になりますが上のように@xxx
をつけるとその人に対する発言になります。
なので上は@ino008
が答えてくれます。
皆さん 熱心に対応していただくのは良いですが、あまり遅い時間まではしないようにお願いします。 m( )m
皆様ご返信ありがとうございます。積極に答えを探します。
@ino008 すみません、質問の意味がよくわかりません。 私の理解では、webサーバでのクライアントはユーザの操作を指してます。
ここまでは「クライアント」という言葉を使っていなかったので、なにか理由があって使ったのかな?と思って聞きました。
Web制作の中で「サーバー/クライアント」という組み合わせで使うことが多いです。 ざっくり言うと、アクセス元(リクエストを出す)のコンピュータを「クライアント」と呼びます。 処理をする(リクエストを受け取って、処理をして、処理の結果をレスポンスとして返す)コンピュータを「サーバー」と呼びます。
一方で、「ユーザー(利用者)/管理者(アドミン)」という組み合わせもあります。 これはサービスに対する、人の状態・役割を表す言葉のときが多いと思います。
要件を検討するときでも、言葉の意図が違うと「思っていたのと違う」結果になることがあるので、基本的な言葉の使い方は大事です。
@masa401 間違っているところ、補足があればご指摘ください。
@ino008さん 指摘ありがとうございます、今後言葉の使用に気を付けます。
Webアプリケーションが動くとき
- webサーバの処理要求をアプリケーションサーバに渡します、アプリケーションサーバでその要求の処理結果をwebサーバに返します。
- アプリケーションサーバのデータ要求をDBサーバに渡します。DBサーバから要求したデータをアプリケーションサーバに返します。
Webサーバーの処理要求は、どのようなきっかけで発生するのでしょうか?
- クライアントが操作をして、結果を求めるとき処理要求が発生します。
サーバーの説明にあった「リクエスト」や「レスポンス」といった言葉は入っていませんが、Webアプリケーションの処理の流れの中で、「リクエスト」「レスポンス」に当たる部分は、それぞれどこなのでしょう?
Webアプリケーションの処理の流れを、「リクエスト」、「レスポンス」、「クライアント」、「サーバー」といった言葉を使ってまとめると、下のようになります。
# | クライアント | サーバー | 処理内容 |
---|---|---|---|
1 | ローカルPC | Webサーバー | (ユーザーがブラウザ上でリンクをクリックする) 欲しいページのURIを含めたページ取得のリクエストを送る |
2 | Webサーバー | アプリケーションサーバー | ページに表示するためのデータのリクエストを送る |
3 | アプリケーションサーバー | DBサーバー | 表示用のデータを取得するクエリを含んだリクエストを送る |
4 | DBサーバー | アプリケーションサーバー | クエリの実行結果を含めたレスポンスを返す |
5 | アプリケーションサーバー | Webサーバー | クエリの実行結果から生成したページのデータを含めたレスポンスを返す |
6 | Webサーバー | ローカルPC | 表示するページのデータを送る (PCが受け取ったデータをブラウザ上に描画する) |
以下をヒントに
Webアプリ
について調べたことをコメントしてください。