質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

3回答

426閲覧

WEBサーバーとそのクライアントプログラムであるWEBブラウザーのような、双方で通信をするプログラムの関係

退会済みユーザー

退会済みユーザー

総合スコア0

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2020/12/09 02:21

編集2020/12/09 02:57

※プログラミング初学者であるため、用語の使い方が間違っている場合はご教示ください。
そもそも専門用語の定義を正しく理解していない可能性があるため、ご指摘いただければ助かります。

Javaを学習中なのですが、私自身大きなものから小さなものを見るタイプで、まずなぜプログラムが動くのかという部分の学習を深めています。
WEBサーバーとそのクライアントプログラムであるWEBブラウザーのような、双方で通信をするプログラムについての質問となります。

クライアントがブラウザで何かリクエストを送信したとき、
WEBサーバーで受け取る⇒静的コンテンツはWEBサーバーから、動的コンテンツはWEBサーバーがAPPサーバーを経由してレスポンスを返す
そして、APPサーバーを経由する際、APPサーバーによって呼び出されたプログラムが計算やデータベースとのやりとりを行う。
と学習しました。

ここで質問です。普段ローカルでプログラムを実行する時、サーバーを起動します。
なのでプログラムはサーバーを起動しない限り動かないと考えているのですが、上記のようにAPPサーバーがプログラムを実行前に既に動いているのは、
そのサーバーがローカルではなく、リモート、例えばHerokuのようなPaaSで既に起動して動いているから、ということでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/12/09 02:24

「なぜプログラムは動くのか」 そういう書籍もあったかと思いますが その手のアプローチはされてないのでしょうか。 むしろ、先輩や上司から聞くべきでは。
dodox86

2020/12/09 02:32

「サーバーとプログラム」の関係というより、サーバーもプログラムなので、「サーバーとクライアント」プログラムの関係、でしょうね。
退会済みユーザー

退会済みユーザー

2020/12/09 02:48 編集

そちらの書籍は購入して読みましたが、知識レベルが比例しておらず理解できなかったため、ここで質問しています。 先輩や上司に聞ければベストですが、残念ながらそのような環境下にない(聞きづらいとかそういうのじゃないですよ)ため、ここで質問しています。 回答を導くための助言をいただきありがとうございます。
dodox86

2020/12/09 02:53

「知識レベルが比例しておらず理解できなかったため」とあるので無理はないのですが、サーバーとクライアントのプログラムの関係について問いたいのか、単体のプログラムについて問いたいのかが文面から不確かだったために多少、回答に混乱を生んでいます。あくまで、WEBサーバーとそのクライアントプログラムであるWEBブラウザーのような、双方で通信をするプログラムについての質問なのですよね。
退会済みユーザー

退会済みユーザー

2020/12/09 02:55

ご指摘ありがとうございます。そうですね、プログラムだけでもいろんな種類がありますもんね。あくまで、WEBサーバーとそのクライアントプログラムであるWEBブラウザーのような、双方で通信をするプログラムについての質問となります。
guest

回答3

0

Javaを学習中なのですが、私自身大きなものから小さなものを見るタイプで、まずなぜプログラムが動くのかという部分の学習を深めています。

体系的な学習をしてください。
QA サイトでは部分的な回答しかできません。

投稿2020/12/09 02:33

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ここで質問です。普段ローカルでプログラムを実行する時、サーバーを起動します。

というのが大きな間違いで、プログラムの実行にはサーバはいりません。

投稿2020/12/09 02:42

y_waiwai

総合スコア87784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/12/09 02:47

ローカルホストなどでアプリを起動する場合、ローカルサーバー上でプログラムを実行するといった方がよいでしょうか?
y_waiwai

2020/12/09 02:55

あなたの言うホスト、サーバ、クライアントという基本的な用語の理解がいまいちできてないかなと思います。 他の方も言われてますが、もうちょっと学習を進める必要がありと思いますよ
退会済みユーザー

退会済みユーザー

2020/12/09 02:58

知識不足でうまく説明できず申し訳ございません。基本的な用語の理解を深めてみます。
guest

0

ベストアンサー

普段ローカルでプログラムを実行する時、サーバーを起動します。
なのでプログラムはサーバーを起動しない限り動かないと考えているのですが、上記のようにAPPサーバーがプログラムを実行前に既に動いているのは、
そのサーバーがローカルではなく、リモート、例えばHerokuのようなPaaSで既に起動して動いているから、ということでしょうか?

そのとおりです。

サーバーも、誰かが作ったプログラムです。質問者さんがローカルマシン上でサーバープログラムを起動するのと同様に、インターネット上のリモートマシンで誰か、あるいはマシンの起動時に自動的にサーバープログラムを起動します。起動したサーバープログラムはクライアントプログラムからの接続を口を開けて待ち続けています。(その口とは、HTTPであれば一般的にTCPポート番号80番です)

つまりサーバープログラムは、ローカルマシン上で質問者さんが手動で起動するか、リモートマシン上で誰かが起動するかの違いだけで、本質的な違いはありません。

投稿2020/12/09 03:08

dodox86

総合スコア9183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問