web容器 web服務器 servlet/jsp容器 之間的區別和關係是什麼?

web容器 web服務器 servlet/jsp容器 之間的區別和關係是什麼?

這是我在網上找的一些資料:
1. Web瀏覽器除了能夠在本地硬盤上打開網頁文檔外,還可使用http網絡協議從網絡上的Web服務器(也叫www服務器)上獲取網頁文檔的內容。html

2. Web瀏覽器與Web服務器分別表明着TCP網絡程序的客戶機和服務器。web

3. 不管網站規模的大小,最起碼的工做就是要在用作Web服務器的計算機上安裝某種Web服務器軟件。只要在一臺計算機上安裝了Web服務器軟件,從功能上講,這臺計算機就能夠成爲Web服務器。Web服務器包括硬件即計算機和軟件即Web服務器軟件兩層意思。目前有兩種Web服務器軟件:IIS和Apache,可是它們都不直接支持Servlet和Jsp程序。要想在這些Web服務器軟件中運行Servlet和Jsp,還必須將它們與某種Servlet和Jsp容器(引擎)進行集成。spring

4. Tomcat是Sun公司推薦運行的Servlet和Jsp容器,它能夠被集成到IIS和Apache中。Tomcat也具備Web服務器的一些基本功能,僅基本功能而已。對於通常的Web應用,咱們能夠直接將Tomcat做爲Web服務器軟件運行。數據庫

5. 在J2EE平臺中,有Servlet和Jsp容器,EJB容器等容器。apache

6. Servlet容器的主要任務是管理servlet的生命週期。而Web容器,它是來管理和部署 Web應用的,我的認爲Web容器包括Web服務器和Servelt、Jsp容器兩層意思。固然,Tomcat可被認爲是Sevlet容器、Web容器,也具備Web服務器軟件通常的功能 服務器:廣義上講有不少的概念,硬件角度上說就是一臺高性能的Computer。咱們一般指的服務器其實應該是裝有可以處理具體請求事務的服務器軟件的Computer。好比最多見的www服務器、mail服務器、計費服務器、ftp服務器等等。不少時候人們常把諸如Tomcat、IIS、Weblogic 也稱之爲web服務器,這對初學者很容易形成混淆,其實這些只是用於開發、集成、部署和管理Web應用、網絡應用和數據庫應用的應用服務器軟件。
7.web容器:通俗的講web容器就是可以支持發佈web程序的軟件。
8.b/s結構下,以常見的自來水供水系統爲例來講,整個web系統比如完整的供水系統,用戶只須要有水龍頭(Broswer),水管至關於計算機網絡(network),自來水公司的供水系統(即Server),其中的壓力水罐就是容器(Container)了。 servlet容器的主要任務是管理servlet的生命週期。有一種服務器叫作應用服務器,它的功能比web服務器要強大的多,由於它能夠部署EJB應用,能夠實現容器管理的事務,通常的應用服務器有weblogic和websphere等,它們都是商業服務器,功能強大但都是收費的。web容器最典型的就是tomcat了,Tomcat是web容器也是servlet容器。web容器比如電視機,servlet容器比如VCD,沒有VCD你能夠看電視,對吧,可是有了VCD沒有電視機,你從哪看起?:)沒有servlet容器,你也能夠用web容器直接訪問靜態頁面,好比安裝一個apache等,可是若是要顯示jsp/servlet,你就要安裝一個servlet容器了,可是光有servlet容器是不夠的,由於它要被解析成html輸出,因此你仍須要一個web容器。可是,注意 我說   可是, 大多數servlet容器同時提供了web容器的功能,也就是說大多servelt能夠獨立運行你的web應用。瀏覽器

 servlet容器,負責管理servlet生命週期。
    web容器,負責管理和部署web應用,其自己可能具有servlet容器組件;若是沒有,通常能將第三方servlet容器做爲組件整合進web容器。
    應用服務器,其功能遠遠大於web容器,由於它能夠部署EJB應用,能夠實現容器管理的事務,通常的應用服務器有weblogic和websphere等,它們都是商業服務器,功能強大但都是收費的。web容器最典型的就是tomcat了,Tomcat是web容器也是servlet容器。
    因爲spring的出現,應用服務器在容器管理的事務方面的價值正在褪去,由於spring的配置型事務管理特性能適用於絕大多數非分佈式事務的應用場景。
WEB 容器更多的是跟基於 HTTP 的請求打交道。而 EJB 容器不是。它是更多的跟數據庫、其它服務打交道。 
  容器的行爲是 將其內部的應用程序組件與外界的通訊協議交互進行了隔離,從而減輕內部應用程序組件的負擔(實現方面的負擔?)。 例如,SERVLET 不用關心 HTTP 的細節,而是直接引用環境變量 session、request、response 就行、EJB 不用關心數據庫鏈接速度、各類事務控制,直接由容器來完成。 
  Web 服務器能夠響應針對靜態頁面或圖片的請求, 進行頁面跳轉(redirect),或者把動態響應(dynamic response)的產生委託(delegate)給一些其它的程序,例如 CGI 腳本,JSP(JavaServer Pages)腳本,servlets,ASP(Active Server Pages)腳本,服務器端 JavaScript,或者一些其它的服務器端技術。 

Web 服務器僅僅提供一個能夠執行服務器端程序和返回(程序所產生的)響應的環境,而不會超出職能範圍。 
Web 服務器主要是處理須要向瀏覽器發送 HTML 的請求以供瀏覽。
對於一個初學者來講,能夠這樣認爲,當在一臺機器上配置好 Apache 服務器,可利用它響應對 HTML 頁面的訪問請求。實際上 Tomcat 部分是Apache 服務器的擴展,但它是獨立運行的,因此當你運行 tomcat 時,它實際上做爲一個與 Apache 獨立的進程單獨運行的。 
 Tomcat 是提供一個支持 Servlet 和 JSP 運行的容器。Servlet 和 JSP 能根據實時須要,產生動態網頁內容。而對於 Web 服務器來講, Apache 僅僅支持靜態網頁,對於支持動態網頁就會顯得無能爲力;Tomcat 則既能爲動態網頁服務,同時也能爲靜態網頁提供支持。儘管它沒有一般的 Web 服務器快、功能也不如 Web 服務器豐富,可是 Tomcat 逐漸爲支持靜態內容不斷擴充。大多數的 Web 服務器都是用底層語言編寫如 C,利用了相應平臺的特徵,所以用純 Java 編寫的 Tomcat 執行速度不可能與它們相提並論。 
--——————————————————————————
相關文章
相關標籤/搜索