使用Tomcat时一次Http访问的过程
来源:互联网 发布:php开发app教程 编辑:程序博客网 时间:2024/06/06 01:30
首先我们得看看Tomcat的基本元素,各个版本中相似但不同,在Tomcat中的server.xml中描述了以下的元素:
@ server:顶层元素,代表整个Catalina Servlet容器,可以包含一个或者是多个Service;
@ Service:连接器元素,它由一个或者多个Connector和一个Engine组成,负责处理所有的Connector所获得的客户请求。这些 Connector共享一个Engine。
@Connector: 一个Connector将在某个指定端口上侦听客户请求,并且将获得的请求交给Engine来处理,再从Engine上或的回 应然后返回给客户端。
@Engine: 容器类元素,可以包含多个Virtual Host元素,每个虚拟主机都有一个域名,当Engine获得一个Connector发出的 HTTP请求时,它吧请求匹配到某个Host上,然后把该请求交给该Host来处理,Engine有一个默认的虚拟主机 Localhost。当请求无法匹配到任何一个Host来处理,将交给默认的Host来处理。
@Host: 定义一个虚拟主机,每个虚拟主机都和某个DNS相匹配,每个虚拟主机下都可以部署多个web应用程序。当Host获得一 个请求时,将该请求匹配到某个Context上,然后将该请求交给该Context处理。所有无法与Context匹配的都与path=“”的默认Context匹配。
@Context: Context代表一个虚拟主机上运行的一个应用,一个Context对应一个web应用程序,一个Context包含多Servlet。
下面我们来看一下Tomcat Server的关系图:
下面我们来看一下一个请求的过程:(假设请求为:http://localhost:8080/test/index.jsp)
1. 请求被发送到本机端口8080,被在哪里侦听的HTTP Connector获得;
2. Connector把请求交给他所在的Service的Engine来处理,等待来自Engine的回应;
3.Engine获得请求localhost:8080/test/index.jsp并且匹配她所拥有的虚拟主机Host;
4.Engine匹配到Localhost主机,如果匹配不到的话,就匹配默认主机;
5.Host匹配到路径为“/test”的Context,如果匹配不到就交给默认的Context处理;
6.path = “/test”的Context获得请求/index.jsp,在他的mapping table中寻找对应的Servlet
7.Context匹配到URL为*.jsp的Servlet,对应于JspSevlet类;
8.HttpServletRequest对象和HttpServletResponse对象作为参数调用JspSevlet中的doPost和doGet方法;
9.Context将执行完的HttpServletResponse对象返回给Host;
10.Host将执行完的HttpServletResponse对象返回给Engine;
11.Engine将执行完的HttpServletResponse对象返回给Connector;
12.Connector将执行完的HttpServletResponse对象返回给客户端;
- 使用Tomcat时一次Http访问的过程
- Tomcat源码分析--一次HTTP请求过程
- 记录一次使用DDNS通过域名访问服务器的过程
- tomcat同时使用http和https访问的配置方法
- 一次完整的Http请求过程
- 一次完整的http请求过程
- 一次完整的Http请求过程
- 一次完整的HTTP事务过程分析
- 一次完整的Http请求过程
- 一次完整的 HTTP 请求过程
- 一次完整的 HTTP 请求过程
- 一次完整的HTTP请求过程
- 一次完整的HTTP请求过程
- 一次完整的 HTTP 请求过程
- 一次完整的 HTTP 请求过程
- 一次完整的HTTP请求过程
- 一次HTTP请求的大概过程
- 一次完整的http请求过程
- Zxing里面的东西,在拍照时设置相机参数 会用到,所以记下来(日记)
- ios自动打包(适用于批量打包)
- struts2的常用标签(二)
- java中栈内存和堆内存的区别
- 只能输入数字,不需要小数点,错误可能是
- 使用Tomcat时一次Http访问的过程
- Codeforces 617EXOR and Favorite Number (Round #340 (Div. 2) E题) 莫队算法 + 异或基本性质
- 原型模式(Prototype Pattern)
- 引导界面微场景交互设计与技术实现V2.0
- Android内存泄漏杂谈
- 多线程之NSOperation
- JNDI的作用是什么
- 如何用github上传自己的代码,解决冲突
- 18001 Farmer Cat