Apache 和 Tomcat 有什么不同,为什么要整合 Apache 和 Tomcat?

为什么会去思考这个问题,看看自己下载的 tomcat 包文件!居然命名成了 apache-tomcat-7.0.79.zip。Apache 放在前面,tomcat 放在后面,这之间存在什么样的关系?

1. Apache 是 Web 服务器,Tomcat 是应用(java)服务器,它只是一个 servlet 容器,是 Apache 的扩展。
2. Apache 和 Tomcat 都可以做为独立的 Web 服务器来运行,但是 Apache 不能解释 java 程序(jsp,serverlet)。
3. Apache 是普通服务器,本身只支持 html 即普通网页。不过可以通过插件支持 php, 还可以与 Tomcat 连通 (单向 Apache 连接 Tomcat, 就是说通过 Apache 可以访问 Tomcat 资源。反之不然)
4. 两者都是一种容器,只不过发布的东西不同:Apache 是 html 容器,功能像 IIS 一样;Tomcat 是 jsp/servlet 容器,用于发布 jsp 及 java 的,类似的有 IBM 的 webshere、EBA 的 Weblogic,sun 的 JRun 等等。
5. Apache 和 Tomcat 是独立的,在通一台服务器上可以集成。


打个比方:Apache 是一辆卡车,上面可以装一些东西如 html 等。但是不能装水,要装水必须要有容器(桶),Tomcat 就是一个桶(装像 Java 这样的水),而这个桶也可以不放在卡车上。


Apache 只支持静态网页,但像 asp,php,cgi,jsp 等动态网页就需要 Tomcat 来处理。
Apache 和 Tomcat 整合使用:如果客户端请求的是静态页面,则只需要 Apache 服务器响应请求;如果客户端请求动态页面,则是 Tomcat 服务器响应请求;因为 jsp 是服务器端解释代码的,这样整合就可以减少 Tomcat 的服务开销 。
Apache 是世界使用排名第一的 Web 服务器。它可以运行在几乎所有广泛使用的计算机平台上。
Apache 源于 NCSAhttpd 服务器,经过多次修改,成为世界上最流行的 Web 服务器软件之一。Apache 取自 “a patchy server” 的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache 的特点是简单、速度快、性能稳定,并可做代理服务器来使用。Apache 对 Linux 的支持相当完美。
Apache 有多种产品,可以支持 SSL 技术,支持多个虚拟主机。Apache 是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个 Apache Web 站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止 Apache 仍然是世界上用的最多的 Web 服务器,市场占有率达 60% 左右。世界上很多著名的网站如 Amazon.com、Yahoo!、W3 Consortium、Financial Times 等都是 Apache 的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的 Unix、 Windows、Linux 系统平台上)以及它的可移植性等方面。
Apache 的诞生极富有戏剧性。当 NCSA WWW 服务器项目停顿后,那些使用 NCSA WWW 服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了 Apache Group,后来这个团体在 NCSA 的基础上创建了 Apache。如果你准备选择 Web 服务器,毫无疑问 Apache 是你的最佳选择。
Tomcat 是一个开放源代码、运行 servlet 和 JSP Web 应用软件的基于 Java 的 Web 应用软件容器。Tomcat Server 是根据 servlet 和 JSP 规范进行执行的,因此我们就可以说 Tomcat Server 也实行了 Apache-Jakarta 规范且比绝大多数商业应用软件服务器要好。
Tomcat 是 Java Servlet 2.2 和 JavaServer Pages 1.1 技术的标准实现,是基于 Apache 许可证下开发的自由软件。Tomcat 是完全重写的 Servlet API 2.2 和 JSP 1.1 兼容的 Servlet/JSP 容器。Tomcat 使用了 JServ 的一些代码,特别是 Apache 服务适配器。随着 Catalina Servlet 引擎的出现,Tomcat 第四版号的性能得到提升,使得它成为一个值得考虑的 Servlet/JSP 容器,因此目前许多 WEB 服务器都是采用 Tomcat。
**JSP=Java Server Pages (Java 服务器网页)
**ASP=Active Server Pages (活动服务器网页)
**CGI=Common Gateway Interface (通用网关接口)
**J2EE=Java 2 Platform, Enterprise Edition (Java2 平台,企业版)
**XML=eXtensible Markup Language (扩展标记语言)
**IIS=Internet Information Server (互联网信息服务器)