flsvo / share

情報共有用リポジトリ
0 stars 0 forks source link

Webアプリ #2

Open masa401 opened 5 years ago

masa401 commented 5 years ago

以下をヒントにWebアプリについて調べたことをコメントしてください。

woody233 commented 5 years ago
  1. Webサーバー
    • クライアントからのリクエストに応じて、コンテンツのレスポンスを担当する。
  2. アプリケーションサーバー
    • Webサーバーからのリクエストに応じて、動的コンテンツの生成を担当する。
  3. DBサーバー
    • アプリケーションサーバーからのリクエストに応じて、データの取得/更新/削除を担当する。
woody233 commented 5 years ago

アプリケーションサーバーの種類

woody233 commented 5 years ago

アプリケーションサーバーを立てる場合と静的コンテンツのみの場合との違い

  1. 静的コンテンツのみの場合
    • Webブラウザのリクエストに指定されたデータがそのまま送信する。
  2. アプリケーションサーバーを立てる場合
    • Webブラウザのリクエストに対して、動的な処理が必要な場合には、Webサーバから受け取ったリクエストをもとに、Javaやphp、Rubyなどを実行し、Webサーバに結果を返す。
woody233 commented 5 years ago

ネイティブアプリケーションとの違い

  1. ネイティブアプリ
    • アプリをダウンロードし、端末へインストールする。
  2. Webアプリ
    • ダウンロードは不要で、Webブラウザ上で動くアプリ。
woody233 commented 5 years ago

RestAPIとは?

  1. 定義
    • RESTの原則に則って構築されたWebシステムのHTTPでの呼び出しインターフェースのこと。
    • HTTPメソッド, パラメータ, URI, レスポンス形式等の項目がある。
  2. メリット
    1. メリット
      • アプリケーションの中のリソースがURIで示せる。アドレス欄に入力すれば、そのリソースを参照できる。
      • URIに規則が生まれることで、容易に使える。
      • ステートレスにすることで、負荷に応じたスケーラビリティを向上することができる。
      • 標準的なデータフォーマットを扱うことで、他システムとの連携が容易になる。
      • 多様なアプリケーションを提供することができる。
masa401 commented 5 years ago

もっと深く。自分が作る場合に何が必要?

alkinb commented 5 years ago

アプリケーションサーバの種類

RestAPIとは?

woody233 commented 5 years ago

masa401さんの質問は、Webアプリを自作する場合のことですか?

woody233 commented 5 years ago

RESTの原則

woody233 commented 5 years ago

WebサーバとDBサーバ(DBソフト)の種類

  1. Webサーバ
    • Apache HTTP Sever:
    • IIS: Windowsの標準Webサーバーソフトウエア
    • Nginx: 大規模システムでシェアを伸ばしているソフト
  2. DBサーバ(DBソフト)
    • DB2,MySQL,Oracle Databaseなど
woody233 commented 5 years ago

アプリケーションサーバの種類

  1. Tomcat
    • サーブレットコンテナ(Java Serveletを動かすソフト)
    • 正式名称は「Apache Tomcat」
    • 簡易的なWebサーバとしての機能も持つ
  2. JBoss
    • Java EEアプリケーションサーバ、もしくはJavaによるオープンソースソフトウェア開発コミュニティ
  3. GlassFish
    • サンを中心としたオープンソース・コミュニティと、同コミュニティで開発されたJava EE準拠のアプリケーションサーバの名称である。現在オラクルによってコミュニティが継続されている
ino008 commented 5 years ago
  1. Webサーバー

    • クライアントからのリクエストに応じて、コンテンツのレスポンスを担当する。
  2. アプリケーションサーバー

    • Webサーバーからのリクエストに応じて、動的コンテンツの生成を担当する。
  3. DBサーバー

    • アプリケーションサーバーからのリクエストに応じて、データの取得/更新/削除を担当する。

「リクエスト」、「レスポンス」とは何でしょうか? Webアプリケーションが動くとき、それぞれのサーバーの間では、どのような流れでデータのやり取りが行われますか? 調べた情報を整理して、自分の言葉でまとめていただけたらと思います。

woody233 commented 5 years ago

Webアプリケーションが動くとき

「リクエスト」、「レスポンス」とは何でしょうか

ino008 commented 5 years ago

Webアプリケーションが動くとき

  • webサーバの処理要求をアプリケーションサーバに渡します、アプリケーションサーバでその要求の処理結果をwebサーバに返します。
  • アプリケーションサーバのデータ要求をDBサーバに渡します。DBサーバから要求したデータをアプリケーションサーバに返します。

Webサーバーの処理要求は、どのようなきっかけで発生するのでしょうか?

woody233 commented 5 years ago

Webサーバーの処理要求は、どのようなきっかけで発生するのでしょうか?

ino008 commented 5 years ago

Webサーバーの処理要求は、どのようなきっかけで発生するのでしょうか?

  • クライアントが操作をして、結果を求めるとき処理要求が発生します。

「クライアント」とは何でしょう?

ino008 commented 5 years ago

Webアプリケーションが動くとき

  • webサーバの処理要求をアプリケーションサーバに渡します、アプリケーションサーバでその要求の処理結果をwebサーバに返します。
  • アプリケーションサーバのデータ要求をDBサーバに渡します。DBサーバから要求したデータをアプリケーションサーバに返します。

Webサーバーの処理要求は、どのようなきっかけで発生するのでしょうか?

  • クライアントが操作をして、結果を求めるとき処理要求が発生します。

サーバーの説明にあった「リクエスト」や「レスポンス」といった言葉は入っていませんが、Webアプリケーションの処理の流れの中で、「リクエスト」「レスポンス」に当たる部分は、それぞれどこなのでしょう?

masa401 commented 5 years ago

@ino008 ↑「こういうことやで」ということを説明してあげて。

woody233 commented 5 years ago

@ino008 すみません、質問の意味がよくわかりません。 私の理解では、webサーバでのクライアントはユーザの操作を指してます。

woody233 commented 5 years ago

@ino008

masa401 commented 5 years ago

これはgitの使い方の説明になりますが上のように@xxxをつけるとその人に対する発言になります。

なので上は@ino008が答えてくれます。

alkinb commented 5 years ago

皆さん 熱心に対応していただくのは良いですが、あまり遅い時間まではしないようにお願いします。 m( )m

woody233 commented 5 years ago

皆様ご返信ありがとうございます。積極に答えを探します。

ino008 commented 5 years ago

@ino008 すみません、質問の意味がよくわかりません。 私の理解では、webサーバでのクライアントはユーザの操作を指してます。

ここまでは「クライアント」という言葉を使っていなかったので、なにか理由があって使ったのかな?と思って聞きました。

Web制作の中で「サーバー/クライアント」という組み合わせで使うことが多いです。 ざっくり言うと、アクセス元(リクエストを出す)のコンピュータを「クライアント」と呼びます。 処理をする(リクエストを受け取って、処理をして、処理の結果をレスポンスとして返す)コンピュータを「サーバー」と呼びます。

一方で、「ユーザー(利用者)/管理者(アドミン)」という組み合わせもあります。 これはサービスに対する、人の状態・役割を表す言葉のときが多いと思います。

要件を検討するときでも、言葉の意図が違うと「思っていたのと違う」結果になることがあるので、基本的な言葉の使い方は大事です。

@masa401 間違っているところ、補足があればご指摘ください。

woody233 commented 5 years ago

@ino008さん 指摘ありがとうございます、今後言葉の使用に気を付けます。

ino008 commented 5 years ago

Webアプリケーションが動くとき

  • webサーバの処理要求をアプリケーションサーバに渡します、アプリケーションサーバでその要求の処理結果をwebサーバに返します。
  • アプリケーションサーバのデータ要求をDBサーバに渡します。DBサーバから要求したデータをアプリケーションサーバに返します。

Webサーバーの処理要求は、どのようなきっかけで発生するのでしょうか?

  • クライアントが操作をして、結果を求めるとき処理要求が発生します。

サーバーの説明にあった「リクエスト」や「レスポンス」といった言葉は入っていませんが、Webアプリケーションの処理の流れの中で、「リクエスト」「レスポンス」に当たる部分は、それぞれどこなのでしょう?

Webアプリケーションの処理の流れを、「リクエスト」、「レスポンス」、「クライアント」、「サーバー」といった言葉を使ってまとめると、下のようになります。

リクエスト

レスポンス

Webアプリケーションが動くときの流れ

例:Webページを表示する

# クライアント サーバー 処理内容
1 ローカルPC Webサーバー (ユーザーがブラウザ上でリンクをクリックする)
欲しいページのURIを含めたページ取得のリクエストを送る
2 Webサーバー アプリケーションサーバー ページに表示するためのデータのリクエストを送る
3 アプリケーションサーバー DBサーバー 表示用のデータを取得するクエリを含んだリクエストを送る
4 DBサーバー アプリケーションサーバー クエリの実行結果を含めたレスポンスを返す
5 アプリケーションサーバー Webサーバー クエリの実行結果から生成したページのデータを含めたレスポンスを返す
6 Webサーバー ローカルPC 表示するページのデータを送る
(PCが受け取ったデータをブラウザ上に描画する)