Apache http server(AHS) vs Apache tomcat
口语化colloquial的把Apache http server称为apache。
Apache http server设计目的,是为基于网络的客户端提供静态文件,比如text, html, images, audio, video等的服务。
Apache tomcat根据网络客户端的不同,提供不同的网络服务。他依赖于客户端是谁,客户端是否登陆,客户端之前与服务端的交互,等因素而行为不同。
安装的准备工作不同
Apache http server没有准备条件,可以在几乎所有现代windows和Linux版本上运行。
Apache tomcat需要提前安装JDK,并需要JAVA_HOME的环境变量。tomcat的动态功能逻辑,是由部署在tomcat上的java代码实现的。
在网络服务器中的角色不同
现代网络服务的三层架构中,Apache http server位于第一层,它是与网络客户端交互的第一层,收到客户端的请求,并将最终响应返回给客户端。
如果客户端发送的是简单的静态资源请求,apache http server会直接将响应返回给客户端。
如果客户端发送的请求还需要其他逻辑处理,apache http server会将请求转发给tomcat server处理。在这种场景下,tomcat被认为是网络拓扑结构中的中间层。
如果一个请求需要更多的逻辑,tomcat server可能还需要与关系型数据库、非关系型数据库、消息队列等第三方组件交互。这些第三组件资源,被称为网络三层架构中的第三层。
其他差别
apache http server属于文件服务器,竞争产品包括nginx, lighttpd, microsoft IIS。部署的资源leix可以是任意单个文件。部署文件夹为htdocs。默认端口为80。
Apache tomcat属于服务端引擎,竞争产品包括JBoss,Jetty, Payara, Wildfly, WebSphere Liberty。部署的资源类型为WAR文件和jar文件。部署文件夹为wenapps。默认端口为8080。
文章链接
https://www.the server side.com/video/Tomcat-vs-Apache-HTTP-Server-What’s-the-difference