共计 1882 个字符,预计需要花费 5 分钟才能阅读完成。
作为运维工程师,日常的工作就是和服务器打交道。在服务器端,Apache 和 Tomcat 都是常用软件,并且两者功能有一定重叠。相信大家对这两者都非常熟悉,不过他们之间到底有什么联系和区别,你知道吗?
【Linux 每日一个知识点 72 期】Apache 和 Tomcat 有哪些异同?
联系
1)Apache 是普通服务器,本身只支持 html 即普通网页,可以通过插件支持 php,还可以与 Tomcat 连通(Apache 单向连接 Tomcat,就是说通过 Apache 可以访问 Tomcat 资源,反之不然)。
2)Apache 只支持静态网页,但像 asp、jsp、php、cgi 等动态网页就需要 Tomcat 来处理。
3)Apache 和 Tomcat 整合使用:
如果客户端请求的是静态页面,则只需要 Apache 服务器响应请求;
如果客户端请求动态页面,则是 Tomcat 服务器响应请求,将解析的 JSP 等网页代码解析后回传给 Apache 服务器,再经 Apache 返回给浏览器端。
这是因为 jsp 是服务器端解释代码的,Tomcat 只做动态代码解析,Apache 回传解析好的静态代码,Apache+Tomcat 这样整合就可以减少 Tomcat 的服务开销。
4)Apache 和 Tomcat 是独立的,在同一台服务器上可以集成。
区别
Apache 是有 C 语言实现的,支持各种特性和模块从而来扩展核心功能;Tomcat 是 Java 编写的,更好的支持 Servlet 和 JSP。
1、Apache 是 Web 服务器,Web 服务器传送(serves) 页面使浏览器可以浏览,Web 服务器专门处理 HTTP 请求 (request),但是应用程序服务器是通过很多协议来为应用程序提供 (serves) 商业逻辑 (business logic)。
Tomcat 是运行在 Apache 上的应用服务器,应用程序服务器提供的是客户端应用程序可以调用(call) 的方法 (methods)。它只是一个 servlet(jsp 也翻译成 servlet)容器,可以认为是 Apache 的扩展,但是可以独立于 apache 运行。
2、Apache 是普通服务器,本身只支持 html 静态普通网页。不过可以通过插件支持 PHP,还可以与 Tomcat 连通 (单向 Apache 连接 Tomcat, 就是说通过 Apache 可以访问 Tomcat 资源,反之不然),Tomcat 是 jsp/servlet 容器,同时也支持 HTML、JSP、ASP、PHP、CGI 等,其中 CGI 需要一些手动调试,不过很容易的。
3、Apache 侧重于 http server,Tomcat 侧重于 servlet 引擎,如果以 standalone 方式运行,功能上 Tomcat 与 apache 等效支持 JSP,但对静态网页不太理想。
4、Apache 可以运行一年不重启,稳定性非常好,而 Tomcat 则不见得。
5、首选 web 服务器是 Apache,但 Apache 解析不了的 jsp、servlet 才用 tomcat。
6、Apache 是很最开始的页面解析服务,tomcat 是后研发出来的,从本质上来说 tomcat 的功能完全可以替代 Apache,但 Apache 毕竟是 tomcat 的前辈级人物,并且市场上也有不少人还在用 Apache,所以 Apache 还会继续存在,不会被取代,apache 不能解析 java 的东西,但解析 html 速度快。
两者例子:
Apache 是一辆车,上面可以装一些东西如 html 等,但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上,那这个桶就是 TOMCAT。
两者整合:
Apache 是一个 web 服务器环境程序,启用他可以作为 web 服务器使用不过只支持静态网页,不支持动态网页,如 asp、jsp、php、cgi
如果要在 Apache 环境下运行 jsp 就需要一个解释器来执行 jsp 网页,而这个 jsp 解释器就是 Tomcat
那为什么还要 JDK 呢?因为 jsp 需要连接数据库的话就要 jdk 来提供连接数据库的驱程,所以要运行 jsp 的 web 服务器平台就需要 APACHE+TOMCAT+JDK
整合的好处:
如果客户端请求的是静态页面,则只需要 Apache 服务器响应请求
如果客户端请求动态页面,则是 Tomcat 服务器响应请求
因为 jsp 是服务器端解释代码的,这样整合就可以减少 Tomcat 的服务开销
《Linux 学习每日一个知识点》栏目是马哥教育 Linux 云计算年薪 20 万 + 的学员社群特别发起,分享 Linux 工具、Linux 语法、Linux 项目等知识点,帮助大家快速的了解 Linux 学习,快速步入 Linux 高薪的快车道。
http://www.magedu.com/74163.html