Apache 和 Tomcat 都是web網絡服務器,兩者既有聯繫又有區別,在進行HTML、PHP、JSP、Perl等開發過程中,需要準確掌握其各自特點,選擇最佳的服務器配置。
相同點:
1)兩者都是apache組織開發的
2)兩者都有HTTP服務的功能
3)兩者都是開源免費的
不同點:
1)Apache是普通的Web服務器(靜態解析),本身只支持html即普通網頁,可以通過插件支持php,還可以與Tomcat連通(Apache單向連接Tomcat,就是說通過Apache可以訪問Tomcat資源,反之不然)。
2)Tomcat是Java應用服務器(動態解析),可處理Jsp動態網頁,是一個Servlet(Jsp也會翻譯成Servlet)容器,可以認爲是Apache的擴展,但是可以獨立於Apache運行。同時也支持HTML、JSP、ASP、PHP、CGI等,其中CGI需要一些手動調試,不過很容易的。
3)Apache是Web服務器,Web服務器傳送頁面使瀏覽器可以瀏覽,Web服務器專門處理HTTP請求(request),但是應用程序服務器是通過很多協議來爲應用程序提供商業邏輯(business logic)。Tomcat是運行在Apache上的應用服務器,應用程序服務器提供的是客戶端應用程序可以調用(call)的方法 (methods)。
5)Apache側重於http server,Tomcat側重於servlet引擎,Apache可以運行一年不重啓,穩定性非常好,而Tomcat則不見得。因此,首選web服務器是Apache,但Apache解析不了的Jsp、Servlet才用Tomcat。
6)Apache是一輛車,上面可以裝一些東西如html等,但是不能裝水,要裝水必須要有容器(桶),而這個桶也可以不放在卡車上,那這個桶就是Tomcat。
Apache和Tomcat整合使用:
※Apache和Tomcat是獨立的,在同一臺服務器上可以集成。
1)如果客戶端請求的是靜態頁面,則只需要Apache服務器響應請求;
2)如果客戶端請求動態頁面,則是Tomcat服務器響應請求,將解析的Jsp等網頁代碼解析後回傳給Apache服務器,再經Apache返回給瀏覽器端。這是因爲Jsp是服務器端解釋代碼的,Tomcat只做動態代碼解析,Apache回傳解析好的靜態代碼,Apache+Tomcat這樣整合就可以減少Tomcat的服務開銷。
3)那爲什麼還要Jdk呢?因爲jsp需要連接數據庫的話就要Jdk來提供連接數據庫的驅程,所以要運行Jsp的Web服務器平臺就需要Apache+Tomcat+Jdk