![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0F2Yt9GdvwlclZ3bj9CXn9Gbi9CXzV2Zh1WavwFduVGdu92YvwVZt5Cb5p3Lc9CX6MHc0RHaiojIsJye.png)
Apache是web伺服器(靜态解析,如HTML),tomcat是java應用伺服器(動态解析,如JSP、PHP)
Tomcat隻是一個servlet(jsp也翻譯成servlet)容器,可以認為是apache的擴充,但是可以獨立于apache運作
兩者從以下幾點可以比較的:
1、兩者都是apache組織開發的
2、兩者都有HTTP服務的功能
3、兩者都是開源免費的
聯系
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的服務開銷