Web服務(wù)器和應(yīng)用服務(wù)器之間的區(qū)別詳解
Web服務(wù)器簡介
什么是Web服務(wù)器
WEB即超文本(hypertext)、超媒體(hypermedia)和超文本傳輸協(xié)議(HTTP),獲取這些靜態(tài)資源實際上是在請求服務(wù)器上的文件。
這些文件都一直保存在服務(wù)器的磁盤上一個固定的文件路徑,并生成一個對應(yīng)的地址。
HTML頁面就是WEB的數(shù)據(jù)元素,處理這些數(shù)據(jù)元素的應(yīng)用軟件就叫WEB服務(wù)器,WEB服務(wù)器常與客戶端打交道,它要處理的主要信息有:session、request、response、HTML、JS、CS等。
常用的Web服務(wù)器
- Nginx
- Apache
- Jetty (也支持動態(tài)頁面處理,但主要還是靜態(tài)頁面)
- IIS
應(yīng)用服務(wù)器簡介
什么是應(yīng)用服務(wù)器
應(yīng)用服務(wù)器是為客戶端提供對業(yè)務(wù)邏輯的訪問這種服務(wù)器,根據(jù)客戶端的請求會將數(shù)據(jù)轉(zhuǎn)化為動態(tài)內(nèi)容,一般還需要數(shù)據(jù)庫的支持,應(yīng)用服務(wù)器的搭建很多時候依賴于應(yīng)用程序的開發(fā)語言,各種編程語言生態(tài)下對應(yīng)不同的軟件, 比如使用Java語言開發(fā)的項目通常選擇 Tomcat或者接jboss來作為程序運行的應(yīng)用服務(wù)器,而使用python語言開發(fā)Web應(yīng)用,一般會選用Django等python框架下的軟件,來作為它的應(yīng)用服務(wù)器。
常用的應(yīng)用服務(wù)器
- Tomcat
- Jboss
- WebLogic
- 有的應(yīng)用服務(wù)器也提供http服務(wù),如Tomcat,所以可以說,Tomcat是Web服務(wù)器也是應(yīng)用服務(wù)器。
Web服務(wù)器和應(yīng)用服務(wù)器的區(qū)別及聯(lián)系
WEB服務(wù)器一般是通用的,而應(yīng)用服務(wù)器一般是專用的,如Tomcat只處理JAVA應(yīng)用程序而不能處理ASPX或PHP。
而Apache是一個WEB服務(wù)器(HTTP服務(wù)器),它的數(shù)據(jù)源可以是配置在Tomcat中的JAVA應(yīng)用,也可以是ASPX應(yīng)用。
Web服務(wù)器只負責(zé)處理HTTP協(xié)議,只能發(fā)送靜態(tài)頁面的內(nèi)容。而JSP,ASP,PHP等動態(tài)內(nèi)容需要通過CGI、FastCGI、ISAPI等接口交給其他程序去處理,這個其他程序就是應(yīng)用服務(wù)器。
Web服務(wù)器只處理靜態(tài)html。走http協(xié)議。客戶端為瀏覽器。
應(yīng)用服務(wù)器主要是控制客戶端和服務(wù)端的業(yè)務(wù)邏輯,通信格式不限制(如json、html或任何文件),也是走http協(xié)議。經(jīng)常用來處理動態(tài)內(nèi)容??蛻舳丝梢允菫g覽器,也可以是其他應(yīng)用服務(wù)器,手機app等。
Web服務(wù)器可以算是應(yīng)用服務(wù)器的一個子集。
現(xiàn)在很多Web服務(wù)器通過加載插件也支持動態(tài)頁面的處理,應(yīng)用服務(wù)器本身也支持靜態(tài)頁面的處理。
兩者有很多重合的地方,現(xiàn)在也有人叫Web應(yīng)用服務(wù)器。隨著Web技術(shù)的火熱,兩者很多功能融合了,但是概念上還是有差異。
這里通過分析Nginx(Web服務(wù)器)和Tomcat(應(yīng)用服務(wù)器)來展示二者之間的區(qū)別:
Tomcat的功能職責(zé) :
Tomcat運行在JVM之上,它和HTTP服務(wù)器一樣,綁定IP地址并監(jiān)聽TCP端口,同時還包含以下指責(zé):
管理Servlet程序的生命周期。
將URL映射到指定的Servlet進行處理。
與Servlet程序合作處理HTTP請求——根據(jù)HTTP請求生成HttpServletResponse對象并傳遞給Servlet進行處理,將Servlet中的HttpServletResponse對象生成的內(nèi)容返回給瀏覽器。
Nginx的功能職責(zé):
動靜態(tài)資源分離——運用Nginx的反向代理功能分發(fā)請求:所有動態(tài)資源的請求交給Tomcat,而靜態(tài)資源的請求(例如圖片、視頻、CSS、JavaScript文件等)則直接由Nginx返回到瀏覽器,這樣能大大減輕Tomcat的壓力。
負載均衡,當(dāng)業(yè)務(wù)壓力增大時,可能一個Tomcat的實例不足以處理,那么這時可以啟動多個Tomcat實例進行水平擴展,而Nginx的負載均衡功能可以把請求通過算法分發(fā)到各個不同的實例進行處理。
兩者的區(qū)別:
Apache/Nginx叫做Http server ;而Tomcat 則是一個application Server,或者說是一個servlet/jsp應(yīng)用容器(python無法直接運行在Tomcat上,java可以) 一個 HTTP Server 關(guān)心的是 HTTP 協(xié)議層面的傳輸和訪問控制,所以在 Apache/Nginx 上你可以看到代理、負載均衡等功能??蛻舳送ㄟ^ HTTP Server 訪問服務(wù)器上存儲的資源(HTML 文件、圖片文件等等)。
而應(yīng)用服務(wù)器,則是一個應(yīng)用執(zhí)行的容器。它首先需要支持開發(fā)語言的 Runtime(對于 Tomcat 來說,就是 Java),保證應(yīng)用能夠在應(yīng)用服務(wù)器上正常運行。
其次,需要支持應(yīng)用相關(guān)的規(guī)范,例如類庫、安全方面的特性。對于 Tomcat 來說,就是需要提供 JSP/Sevlet 運行需要的標準類庫、Interface 等。為了方便,應(yīng)用服務(wù)器往往也會集成 HTTP Server 的功能,但是不如專業(yè)的 HTTP Server 那么強大,所以應(yīng)用服務(wù)器往往是運行在 HTTP Server 的背后,執(zhí)行應(yīng)用,將動態(tài)的內(nèi)容轉(zhuǎn)化為靜態(tài)的內(nèi)容之后,通過 HTTP Server 分發(fā)到客戶端。
Web服務(wù)器與應(yīng)用服務(wù)器的選擇
如果完全服務(wù)靜態(tài)頁面選擇Web服務(wù)器(如一個靜態(tài)博客網(wǎng)站)
如果有動態(tài)頁面處理可以選擇應(yīng)用服務(wù)器,或者結(jié)合使用。大一點的網(wǎng)站推薦兩者都使用,前后端分離,靜態(tài)頁面交給Web服務(wù)器,業(yè)務(wù)邏輯使用應(yīng)用服務(wù)器。(如一個網(wǎng)上購物系統(tǒng))
到此這篇關(guān)于Web服務(wù)器和應(yīng)用服務(wù)器之間的區(qū)別詳解的文章就介紹到這了,更多相關(guān)Web服務(wù)器和應(yīng)用服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
koa?TS?ESLint搭建服務(wù)器重構(gòu)版過程詳解
這篇文章主要為大家介紹了koa?TS?ESLint搭建服務(wù)器重構(gòu)版過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10OnZoom基于Apache Hudi的一體架構(gòu)實踐解析
這篇文章主要介紹了OnZoom基于Apache Hudi的一體架構(gòu)實踐, 有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-03-03win2003服務(wù)器一招廢掉所有木馬(防提權(quán))
木馬的危害,在于它能夠遠程控制你的電腦。當(dāng)你成為“肉雞”的時候,別人(控制端)就可以進入你的電腦,偷看你的文件、盜竊密碼、甚至用你的QQ發(fā)一些亂七八糟的東西給你的好友2012-03-03一個SSL證書在線轉(zhuǎn)換工具以及IIS7環(huán)境下開通https的方法
公司只能提供 Nginx 下的 SSL 證書,卻要在 IIS 里面開啟 https 這個問題,那么就需要將pem轉(zhuǎn)換為pfx,這里為大家分享一下幾種方法2024-02-02