9

我知道创建 Web 应用程序,但我有一个基本的疑问。

我很抱歉问了一个非常愚蠢的问题,但想澄清我的疑问。

Tomcat Container 如何处理请求,我的意思是说,当我发送对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 实现的,而是由操作系统实现的。Java 运行时提供 java.io.Socket 和其他相关类,这些类使用操作系统提供的底层 TCP IP 堆栈。Tomcat 依赖于 java.net.Socket 和其他相关类。

于 2013-01-28T20:17:00.077 回答