來源:xiaoxinwahaha 發(fā)布時(shí)間:2019-01-14 14:36:26 閱讀量:1708
最近在web開發(fā)中,對Web 服務(wù)器與應(yīng)用服務(wù)器,以及容器的概念一直含糊不清,在查閱了一些資料后,將個(gè)人的理解整理如下,如有偏頗,還請大家指正交流哈~
//---------------------------------------------------------------------------------------------------------------
首先,整理下服務(wù)器的概念:
從硬件上來看:服務(wù)器就是一臺PC機(jī)器,只不過配置比較高,如果你愿意,自己手頭的筆記本也可以作為服務(wù)器來用。
而從軟件角度,根據(jù)用途來看,又可以分為:
web服務(wù)器:在PC機(jī)器安裝web服務(wù)軟件,提供web服務(wù)
數(shù)據(jù)庫服務(wù)器:在PC機(jī)器安裝了數(shù)據(jù)庫軟件,提供數(shù)據(jù)管理服務(wù)
郵件服務(wù)器:在PC機(jī)器上安裝了可以收發(fā)郵件服務(wù)軟件
//---------------------------------------------------------------------------------------------------------------
Web 服務(wù)器與應(yīng)用服務(wù)器、以及容器的區(qū)別是什么?
web服務(wù)器
在用戶在瀏覽頁面時(shí),客戶端(瀏覽器)和服務(wù)器之間的通信使用超文本傳輸協(xié)議(HTTP)進(jìn)行,嚴(yán)格意義上講,在這個(gè)過程中Web服務(wù)器只負(fù)責(zé)處理HTTP協(xié)議,其主要功能是存儲(chǔ),處理和傳遞頁面給用戶,但只能發(fā)送靜態(tài)頁面的內(nèi)容(最常見的是HTML文檔,除了文本內(nèi)容之外,還可能包含圖像,樣式表和腳本)。常見的Web服務(wù)器包括Nginx,Apache,IIS等。而JSP,ASP,PHP等動(dòng)態(tài)內(nèi)容需要通過CGI、FastCGI、ISAPI等接口交給其他程序去處理。這個(gè)其他程序就是應(yīng)用服務(wù)器。
應(yīng)用服務(wù)器
所謂的應(yīng)用服務(wù)器,就是提供應(yīng)用的服務(wù)器,WebLogic,JBoss、Tomcat等都屬于應(yīng)用服務(wù)器。然而如今的應(yīng)用服務(wù)器,開始添加越來越多的基于HTTP的通信功能,因此與Web 服務(wù)器中間的界限也變得越來越模糊。但是應(yīng)用服務(wù)器的HTTP協(xié)議部分僅僅是支持,一般不會(huì)做特別優(yōu)化,所以很少有見Tomcat直接暴露給外面,而是和Nginx、Apache等Web服務(wù)器配合,只讓Tomcat處理JSP和Servlet部分。
PS:當(dāng)與Nginx搭配使用時(shí),Nginx同時(shí)作為負(fù)責(zé)均衡器,實(shí)現(xiàn)反向代理,解決大量用戶同時(shí)訪問產(chǎn)生的高負(fù)載問題。
容器
在Java開發(fā)web應(yīng)用的過程中,由于servlet沒main()方法,需要交給另一個(gè)java應(yīng)用才能運(yùn)行,這個(gè)java應(yīng)用稱為容器(Container),Tomcat就是這樣的容器,當(dāng)Web服務(wù)器(Apache)得到一個(gè)指向servlet請求時(shí),服務(wù)器不是把這個(gè)請求交給servlet本身,而是交給部署該servlet的容器。要由容器向servlet提供HTTP請求和響應(yīng),而且要由容器調(diào)用servlet的方法。
綜上,Nginx等Web服務(wù)器專注于處理HTTP協(xié)議,傳遞靜態(tài)頁面內(nèi)容;而Tomcat等服務(wù)器,從功能來看,可以看做是一個(gè)應(yīng)用服務(wù)器,而從角色來看,可以看做是一個(gè)容器。
---------------------
作者:xiaoxinwahaha
來源:CSDN
原文:https://blog.csdn.net/xiaoxinwahaha/article/details/79173868
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!