Web服務器(Apache)與Servlet容器(Tomcat)

以前一直比較迷惑Apache與Tomcat的關係,經過查詢資料,有所瞭解,現記錄於此。html

Apache與Tomcat

二者定位:Apache是HTTP Web服務器,Tomcat是Web容器。web

有一個很是形象的比喻:Apache是一輛車,能夠裝載靜態的物件(HTML靜態網頁等);但不能裝動態的水(JSP、CGI等),要裝水就須要桶(容器),固然桶也能夠不放在車上而單獨存放,則該容器即爲Tomcat。數據庫

二者的主要區別:apache

  • Apache是世界上最流行的Web服務器(其次是微軟的IIS),能夠處理瀏覽器的HTTP請求,默認端口爲80;Tomcat是運行在Apache之上的應用服務器,爲客戶端提供能夠調用的方法。Tomcat是一個Servlet容器(能夠認爲Apache的擴展),可獨立運行。
  • Apache只支持HTML等靜態普通網頁,能夠單向連通Tomcat(Apache能夠訪問Tomcat的資源,反之否則);Tomcat是Servlet容器,能夠支持JSP、PHP和CGI等,其中CGI是公共網關接口,能夠用Perl編寫CGI腳本。
  • Apache側重於HTTP Server;Tomcat側重於Servlet引擎。

二者能夠整合:當客戶端須要請求靜態資源,只須要Apache服務器響應請求;當客戶端須要動態資源,如JSP,須要Tomcat服務容器(Tomcat能夠將JSP解析爲Servlet)。因爲JSP須要JDK的數據庫驅動接口,因此通常組合是Apache+Tomcat+JDK。瀏覽器

兩篇介紹Apache服務網器比較好的博客:Apache與Tomcat的區別於聯繫,http://www.admin10000.com/document/974.html;web服務器apache架構與原理,http://www.cnblogs.com/fnng/archive/2012/11/08/2761713.html。服務器

Servlet容器(Tomcat)

因爲Servlet沒有main方法,Servlet生命週期方法的調用受控於容器,即容器管理Servlet的生命週期,包括初始化(init)、服務調用(service)和銷燬(destroy),Tomcat就是一個Servlet容器。架構

當Web服務器獲得一個Servlet請求時,並非直接將請求提交給Servlet,而是轉交給部署該Servlet的Web容器(Tomcat),由容器向Servlet提供HTTP請求和響應,並由容器調用Servlet的方法,如doGet()和doPost()。更詳細的容器處理請求和響應過程,後邊再整理。htm

 

相關文章
相關標籤/搜索