Tomcat服务器详解

1,507 阅读2分钟

Tomcat里面都有点啥?

很多时候语言是没有图片更能直观的体现一个事物的,所以直接上图 在这里插入图片描述 怕一个看不明白,我放了两个,图是网上找的,哈哈哈哈 怕一个看不明白,我放了两个,图是网上找的,哈哈哈哈

可以看出Tomcat最外层的是一个server容器,里面可以包含多个service
这样就可以为我们提供多个服务了
然后就是每个service里包含多个Connector,和一个Container
通过两个单词的意思我们差不多就可以猜到他们的作用了

Connector详解

Connector翻译为连接器,主要用于处理连接事物,用于接收请求并将请求封装成Request 和Response 来具体处理,最底层是用Socket进行连接的,也就是说Connector同时实现了TCP/IP 协议和HTTP 协议(request,response安照http协议封装)

哪Connector是如何处理一个请求的呢,这就要先了解Connector的结构了 在这里插入图片描述 可以看出Connector的核心组件时ProtocolHandler (这里有个小插曲,我去百度翻译查这个单词发音的时候,提示我输入的可能是西班牙语,翻译过来时原型处理器的意思,我觉得这个翻译很贴切) 不同的ProtocolHandler 代表不同的连接类型,比如, Http11Protocol 使用的是普通Socket 来连接的, Http 11 NioProtocol 使用的是NioSocket 来连接的。 ProtocolHandler 里面有3 个重要的组件: Endpoint 、Processor 和Adapter。

Endpoint用于处理底层Socket 的网络连接,
Processor 用于将Endpoint 接收到的Socket 封装成Request,
Adapter 用于将封装好的Request 交给Container 进行具体处理。

也就是说 Endpoint实现了tcp/ip协议,Processor 实现了http协议 Adapter 负责提交request到容器

Container详解

废话少说,先看结构 在这里插入图片描述 (又是扒来的图,希望不会来打我) Container有四个主要的子容器,分别是Engine、Host、Context、Wrapper 从图就可以看出,他们是一层一层包含的。

Engine: 引擎,用来管理多个站点,一个Service最多只能有一个Engine
Host:   代表一个站点,也叫虚拟主机,通过配置Host就可以添加站点 /localhost
Context:代表一个应用程序localhost/test,对应着平时开发的一个程序,或者一个
         WEB-INF目录及下面的web.xml文件
Wrapper:每个Wrapper封装着一个Servlet

如有错误,请指出,不胜感激