天天看点

tomcat是什么Tomcat 是什么Tomcat 是做什么的Tomcat的顶层结构图Tomcat顶层架构小结:Tomcat接受请求、处理请求过程简单叙述

tomcat是什么、做什么的,以及与其他同类容器的区别的简单概述

Tomcat 是什么

Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,Tomcat是一种类似于IIS、Apache Http的Web服务端程序,由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。也就是Web容器。

Tomcat 是做什么的

简单总结下,tomcat是一个中间件,在B/S架构中,浏览器发出的http请求经过tpmcat中间件,转发到最终的目的服务器上,响应消息再通过tomcat返回给浏览器。

tomcat所做的事情主要有:开启监听端口监听用户的请求,解析用户发来的http请求然后访问到你指定的应用系统,然后你返回的页面经过tomcat返回给用户。

tomcat是什么Tomcat 是什么Tomcat 是做什么的Tomcat的顶层结构图Tomcat顶层架构小结:Tomcat接受请求、处理请求过程简单叙述

Tomcat的顶层结构图

tomcat是什么Tomcat 是什么Tomcat 是做什么的Tomcat的顶层结构图Tomcat顶层架构小结:Tomcat接受请求、处理请求过程简单叙述

Tomcat中最顶层的容器是Server(服务器),代表着整个服务器,一个Server可以包含至少一个Service(服务),用于具体提供服务。Service主要包含两个部分:Connector(连接器)和Container(容器)。并且 Tomcat 的心脏就是这两个组件;再直白的说就是:

一个Tomcat中只有一个Server,一个Server可以包含多个Service,一个Service只有一个Container,但是可以有多个Connectors,这是因为一个服务可以有多个连接,如同时提供Http和Https链接,也可以提供向相同协议不同端口的连接,多个 Connector 和一个 Container 就形成了一个 Service,有了 Service 就可以对外提供服务了,但是 Service 还要一个生存的环境,必须要有人能够给她生命、掌握其生死大权,那就非 Server 莫属了!所以整个 Tomcat 的生命周期由 Server 控制。

另外,上述的包含关系或者说是父子关系,都可以在tomcat的conf目录下的server.xml配置文件中看出;

Tomcat顶层架构小结:

(1)Tomcat中只有一个Server,一个Server可以有多个Service,一个Service可以有多个Connector连接器 和一个Container 容器;

(2)Server掌管着整个Tomcat的生死大权;

(4)Service 是对外提供服务的;

(5)Connector用于接受请求并将请求封装成Request和Response来具体处理;

(6)Container用于封装和管理Servlet,以及具体处理request请求;

知道了整个Tomcat顶层的分层架构和各个组件之间的关系以及作用,对于绝大多数的开发人员来说Server和Service对我们来说确实很远,而我们开发中绝大部分进行配置的内容是属于Connector和Container的,所以接下来介绍一下Connector和Container。

Tomcat接受请求、处理请求过程简单叙述

tomcat是什么Tomcat 是什么Tomcat 是做什么的Tomcat的顶层结构图Tomcat顶层架构小结:Tomcat接受请求、处理请求过程简单叙述

由上述内容我们大致可以知道一个请求发送到Tomcat之后,首先经过Service然后会交给我们的Connector,Connector用于接收请求并将接收的请求封装为Request和Response来具体处理,Request和Response封装完之后再交由Container进行处理,Container处理完请求之后再返回给Connector,最后在由Connector通过Socket(套接字)将处理的结果返回给客户端,这样整个请求的就处理完了!

Connector最底层使用的是Socket来进行连接的,Request和Response是按照HTTP协议来封装的,所以Connector同时需要实现TCP/IP协议和HTTP协议!

Tomcat既然处理请求,那么肯定需要先接收到这个请求,接收请求这个东西我们首先就需要看一下Connector!

第一次写博客,各种格式,各种插入链接、图片都不会用,看到我这的兄弟们见谅哈…