Tomcat处理请求的过程分析
- 1.部署测试
-
- 2.请求过程
- 1. 浏览器中输入网址(默认添加端口号:8080)
- 2. Connector
- 2. Container容器
- 3. Engine
- 4. Host
1.部署测试
1.服务器状态
2.请求测试:
- http://localhost:8080/demo_4_war/
2.请求过程
1. 浏览器中输入网址(默认添加端口号:8080)
- 请求被发送到 8080 端口后,由监听 HTTP/1.1 的 Connector 获得请求。
2. Connector
- 负责接收浏览器发过来的TCP连接请求,创建一个Request和Response对象分别用于和请求端交换数据。然后会产生一个线程来处理这个请求并把产生的Request和Response对象传给处理这个请求的线程,处理这个请求的线程就是Container组件要做的事了。
2. Container容器
- 把请求线程交Container容器中的Engine(servlet引擎) 处理。并等待引擎的响应。(1)选择一个主机来处理用户请求,(2)如果请求是异步的,设置异步标志位
3. Engine
- 包含有多个虚拟主机,它负责就是将用户请求线程分配给一个虚拟主机处理,Engine代表一个Servlet引擎,
4. Host
- 匹配名为 localhost 对应的 Host (如果没有的,被 Host 定义为 servlet 引擎的默认主机)。localhost对应的虚拟主机获取请求的资源,匹配他所拥有的 Context 环境。通过 path(请求的路径)在 Context 中获取请求的资源,在他的 Mapping table 中找到处理此路径请求的 servlet(Wrapper),并匹配对应的 jspServlet 类。构造 HttpServletRequest 和 HttpServletResponse,作为参数调用 Servlet 中的doGet 和 doPost 执行业务。Context 把执行完之后的 Response 这个响应对象返回给虚拟主机Host 把 Response 对象返回给 Engine。Engine 把 Response 返回给 Connector。Connector 把 Response 对返回给客户端 Browser。Browser将响应包解析渲染