Webブラウザにwww.google.comと入力すると、デフォルトのポート80でGoogleサーバーへの接続が開かれ(DNSルックアップを介してwww.google.comのIPアドレスが表示されます)、Webページが要求されます。Googleサーバーは、ブラウザが画面に描画するWebページで応答します(通常は、画像、CSS、およびJavaScriptをさらに呼び出します)。
localhost:8080にアクセスすると、まったく同じことです。Localhostサーバー名は常に実行中のマシンに解決され、127.0.0.1の偽のIPアドレスを使用します(コンピューターには2つのIPアドレスがあります-この偽のアドレスはすべてのコンピューターと実際のアドレスです)。そのため、ポート8080で接続をリッスンしてローカルで実行するTomcatインスタンスが必要です。
デフォルトのhttpポート80ではなくポート8080を使用する理由 まあ、それはあなたがすでにウェブサーバーを設置している場合です。
通常、Webサーバーとアプリサーバーがあります。
Webサーバー(Apache httpdなど)は静的ページを提供します。事実上、それは派手な一方向FTPサーバーのようなものです。TCP接続を開き、HTTPコマンド(通常はGET)を使用してファイルを要求します。WebサーバーはHTMLファイルを返し、ブラウザはそれをダウンロードして解析し、他の画像が必要であると判断し、それらを要求します。Webサーバーは非常に高速ですが、基本的にローカルディスクからファイルを取り出して返します。
アプリケーションサーバー(TomcatやJBossなど)も似ていますが、通常は、コードを実行して、ディスクから直接持ち上げるのではなく、要求しているページを「作成」します。そのページを作成するために行うことは、アプリケーション次第です。データベースに接続し、プログラムを実行し、ランダムにページを提供します...など。たとえば、オンラインバンキングにログオンすると、アプリサーバーはセッションをセットアップし、そのセッションIDをCookieで返します。ログアウトするまで、リクエストを行うたびにブラウザが再送信されます。したがって、「my balances」ページを要求すると、銀行はセッションIDに基づいて自分を確認し、データベースにアクセスして名前と銀行残高を取得し、「Hi John Smith、your balance」というページを作成します。 100ユーロです。」通常、アプリサーバーは低速ですが、Webサーバーよりも汎用性があります。
多くの場所では、デフォルトのポート80で実行されているWebServerがあり、次にセカンダリポート(8080など)で実行されているAppServerがあります。したがって、静的ページは高速で提供され、ユーザーが動的ページに移動するリンクをクリックすると、リンクは8080(アプリサーバーが応答する)に移動するか、Webサーバーが特定の要求をアプリサーバーに転送するようにセットアップされます(その場合、それはまだデフォルトのポート80のように見えるため、ユーザーにとっては少し見栄えがよくなります)。
もちろん、これは非常に高いレベルの概要であり、その白黒は何もありません。ほとんどのWebサーバーは、スクリプト(通常、perlまたはPHPを使用してスクリプトを実行するCGI)を実行することで動的コンテンツを作成でき、ほとんどのアプリサーバーはWebサーバーのようなプレーンファイルを提供できます。実際、アプリサーバーを実行して、Tomcatポート番号を8080から80に変更するだけです。
最後に、多くのアプリケーションは、アプリケーションサーバーへの各リクエストに対して完全なHTMLページを提供することから遠ざかり(低速で非効率的と見なされます)、代わりにAJAXを使用してJSONまたはXMLを送信するデータスニペットのみで応答します。検索クエリの入力に使用した元のwww.google.comに戻り、[検索]をクリックして結果のページを取得します。代わりに、入力中にブラウザがAJAXリクエストをGoogleに継続的に送信し、これまでに入力した内容に基づいて最新の検索結果が返され、ブラウザがページを更新します。これは、ユーザーがページを送信するのを待つ必要がないことを意味します(古い学校のデスクトップアプリがそうであるように)。