bra*_*orm 5 webserver tomcat servlets
这可能是一个简单的问题。但是我正在寻找底层细节,但我找不到明确的答案。
我有一个简单的jsp表单,上面有一个名称字段。我将我的名字发布到表单上,然后servlet返回“ Hello Matt”响应(此处是我在表单上发布的名字)。
现在,我有许多客户端(不同的浏览器和选项卡)发布到Servlet并获取响应。Tomcat(或任何Web服务器)如何知道将响应发送回何处。那就是每个servlet线程如何知道应将响应分派给哪个客户端?Tomcat在哪里维护这些信息?
谢谢
Java内置了服务器套接字java.net.ServerSocket实现,该实现用于接受来自任何客户端的TCP连接。一旦服务器接受来自客户端的连接,它也可以将任何消息发送回客户端。Tomcat实现HTTP协议,并以HTTP协议格式与客户端通信。
该文章谈到了Tomcat的实现细节点点。您还将浏览tomcat源代码以了解工作流程。
几个重要的类/软件包:
org.apache.tomcat.util.net.ServerSocketFactory
org.apache.tomcat.util.net
实际上,您可以使用ServerSocket编写一个简单的HTTP服务器,然后以HTTP RFC格式将消息写入套接字。请参阅此问题以了解基本知识。
Tomcat 依赖于 java.net.Socket 等相关类。它在 TCP 端口(默认值:8080)上运行,并通过主机的 IP 地址和主机用于连接到 Tomcat 的 TCP 端口来识别每个请求。浏览器通过此连接发送 HTTP 请求。Tomcat 包含线程池来处理多个 HTTP 请求。对于每个请求,tomcat 从其池中分配一个线程来处理请求。当响应生成并发送回来时,该线程获得空闲并准备服务另一个请求。
| 归档时间: |
|
| 查看次数: |
4442 次 |
| 最近记录: |