您的位置:首页 > 运维架构 > Tomcat

Tomcat-基础篇

2016-09-13 11:01 148 查看
平时做Web开发,用的服务器都是Tomcat,但是对于其内部的架构和深层次的原理可以说不太了解或者说知道的知识皮毛,所以专门恶补了一下Tomcat基础,就写下这篇博客,如果有啥问题,欢迎留言!好了,不扯淡了,回归正题。

我们平时使用Tomcat,知道它底层是基于Servlet的,它其实就是一个容器,我们的Web应用就部署在这个容器之上。

1、Tomcat架构



当服务器启动后,会把Tomcat中的配置文件server.xml加载到内存,实例化一个service,根据servcie配置监听端口,根据用户提交的请求找到主机,找到资源,根据配置的servlet处理,然后返回给用户。大体的流程就是这样。我下面主要介绍一下Tomcat下面各个文件的作用。



**bin文件夹下面主要放的是tomcat的执行文件,例如startup.bat等。

conf文件夹下存放tomcat配置文件,例如server.xml等。

lib文件夹下存放tomcat启动需要的jar包。

logs存放tomcat启动时产生的日志。

webapps存放web应用。

主要是这五个文件,其他的不会涉及到。**

2、tomcat连接器

tomcat的连接器主要是架构图上显示的三种,而它们又可以划分为对称连接器和非对称连接器。

而上面显示的

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />


这个是不加密的连接器。

2.1加密连接器

对称加密又可称为单钥加密。发送方和接收方都使用相同的秘钥。如何保证秘钥的安全传送到接收方是这种算法要解决的问题。

2.2非对称加密

这种加密算法分为公有密钥和私有密钥,公有密钥在发送方用来加密,而私有密钥由发送方产生发送给接收方,用来解密。

工作原理如下:

1)假设A和B要通信,A、B双方都产生密钥。

2)A将自己的公有密钥,发送给B,B将自己的公有密钥发送给A。

3)如果A向B发送信息,那么A就用B的公有密钥来加密,当B收到信息后就用自己的私有密钥来解密。

4)如果B向A发送信息,就用A的公有密钥来加密信息,同时A收到B的信息时就用自己的私有密钥来解密。

但是这个会存在一个通信安全问题,例如,如果A和B通信在A向B发送公有密钥时,C截获了信息,然后C向A返回了自己的公有密钥,同时B向A发送公有密钥,C截获了信息,并向B返回了自己的公有密钥,那么A和B之间的通信就会被C截获并且解密。因为C同时又A和B的公有密钥,可以向A和B发送虚假信息。这就是存在的安全问题。解决这一问题,维护公有密钥传送的安全性,产生了第三方机构即CA。A想向B发数据,B首先将公钥发给CA机构,CA机构拿到B的公钥后跑到B的家里问:这是你发的公钥吗?B确认过后说是:没错,是我发的!那么此时CA机构就会为B的公钥做担保,生成一份数字证书给B,数字证书包含了CA的担保认证签名和B的公钥,B拿到CA的这份数字证书后,就发给A,A拿到数字证书后,看到上面有CA的签名,就可以确定当前拿到的公钥是B发的,那么就可以放心大胆地使用公钥加密数据,然后发给B了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: