1. 程式人生 > >Apache和Tomcat的區別

Apache和Tomcat的區別

作為一個Java開發,Tomcat在工作中是避免不了要使用的,而使用Tomcat的時候總會出現Apache,到底Apache和Tomcat是什麼關係?

1.明確兩個概念

Apache是Web伺服器,和它類似的還有常說的Nginx,而Tomcat是應用伺服器,更明確地說Tomcat只是一個servlet容器,可以認為它是Apache的擴充套件,但是可以獨立於Apache執行。

2.兩者的相同點

  • 兩者都是Apache組織開發的
  • 兩者都有HTTP服務的功能
  • 兩者都是開源免費的
  • 兩者都可以獨立執行

3.兩者的區別

  • Apache只是一個普通伺服器,只能用來解析靜態頁面(html),不支援解析動態頁面(jsp),它可以通過外掛支援php。如果想解析動態頁面(jsp)就要用到Tomcat,Tomcat同時也支援HTML、JSP、ASP、PHP、CGI等。
  • Apache是用C語言實現的,支援各種特性和模組從而來擴充套件核心功能,而Tomcat是用Java實現的,所以它更好的支援jsp。
  • 一般使用Apache+Tomcat的話,Apache直接處理靜態請求而不經過Tomcat,對於動態請求,Apache只是作為一個轉發,對jsp的處理是由Tomcat來處理的,Apache回傳解析好的靜態程式碼,這樣整合就可以減少Tomcat的服務開銷。 
  • Apache可以單向與Tomcat連通,就是說通過Apache可以訪問Tomcat資源,反之不然。
  • Apache是很最開始的頁面解析服務,Tomcat是後研發出來的,從本質上來說Tomcat的功能完全可以替代Apache,但Apache畢竟是Tomcat的前輩級人物,並且市場上也有不少人還在用Apache,Apache雖然不能解析Java的東西,但解析html速度快,所以Apache還會繼續存在,不會被取代。
  • Apache可以執行一年不重啟,穩定性非常好,而Tomcat則不見得。
  • 首選web伺服器是Apache,但Apache解析不了的jsp、servlet才用Tomcat。

4.Apache和Tomcat整合的好處。

  • 如果客戶端請求的是靜態頁面,則只需要Apache伺服器響應請求
  • 如果客戶端請求動態頁面,則是Tomcat伺服器響應請求
  • 因為jsp是伺服器端解釋程式碼的,這樣整合就可以減少Tomcat的服務開銷