9

私はWebアプリケーションの作成を知っていますが、基本的な疑問が1つあります。

非常にばかげた質問をして申し訳ありませんが、私の疑問を解消したいと思います。

Tomcatコンテナがリクエストを処理する方法、つまり、 home.jspページのリクエストを送信すると、応答はhome.jspページとしてのみ取得され、 register.jspページとしては取得されません。同時に他のユーザーからのリクエストである可能性があります。世界の他の隅から要求された人。

例えば:

Client A --------request(a.jsp)----------> Tomcat (check request received for a.jsp and give proper a.jsp response to client A)

Client B --------request(b.jsp)----------> Tomcat (check request received for b.jsp and give proper b.jsp response to client B)

この場合、Tomcatはリクエスターと正しいリクエスターへの応答の間でどのように混乱しないのでしょうか。

内部でどのように機能するか。

これを説明するいくつかのリンクも役立ちます。

ありがとう。

4

1 に答える 1

19

あなたは基本的にTCPがどのように機能するかを尋ねています。これはかなり大きなテーマです。基本的に、そのまま再開できます。Tomcatは特定のTCPポート(デフォルトでは8080)で接続をリッスンします。一部のブラウザがTomcatへの接続を開くたびに、この接続はリモートホストのIPアドレスと、このホストがTomcatへの接続に使用するTCPポートによって識別されます。

HTTPリクエストは、この接続を介してブラウザによって送信され、リクエストがTomcatに着信すると、Tomcatはスレッドのプールからスレッドを割り当ててリクエストを処理します。応答が生成されて送信されると、スレッドはプールに戻り、任意のクライアントからの別の要求を処理できるようになります。

TCPスタック自体は、Tomcatではなく、OSによって実装されます。Javaランタイムは、OSによって提供される基盤となるTCPIPスタックを使用するjava.io.Socketおよびその他の関連クラスを提供します。また、Tomcatはjava.net.Socketおよびその他の関連クラスに依存しています。

于 2013-01-28T20:17:00.077 に答える