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ù)器只負(fù)責(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。走h(yuǎn)ttp協(xié)議。客戶端為瀏覽器。
應(yīng)用服務(wù)器主要是控制客戶端和服務(wù)端的業(yè)務(wù)邏輯,通信格式不限制(如json、html或任何文件),也是走h(yuǎn)ttp協(xié)議。經(jīng)常用來處理動態(tài)內(nèi)容??蛻舳丝梢允菫g覽器,也可以是其他應(yīng)用服務(wù)器,手機(jī)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進(jìn)行處理。
與Servlet程序合作處理HTTP請求——根據(jù)HTTP請求生成HttpServletResponse對象并傳遞給Servlet進(jìn)行處理,將Servlet中的HttpServletResponse對象生成的內(nèi)容返回給瀏覽器。
Nginx的功能職責(zé):
動靜態(tài)資源分離——運用Nginx的反向代理功能分發(fā)請求:所有動態(tài)資源的請求交給Tomcat,而靜態(tài)資源的請求(例如圖片、視頻、CSS、JavaScript文件等)則直接由Nginx返回到瀏覽器,這樣能大大減輕Tomcat的壓力。
負(fù)載均衡,當(dāng)業(yè)務(wù)壓力增大時,可能一個Tomcat的實例不足以處理,那么這時可以啟動多個Tomcat實例進(jìn)行水平擴(kuò)展,而Nginx的負(fù)載均衡功能可以把請求通過算法分發(fā)到各個不同的實例進(jìn)行處理。
兩者的區(qū)別:
Apache/Nginx叫做Http server ;而Tomcat 則是一個application Server,或者說是一個servlet/jsp應(yīng)用容器(python無法直接運行在Tomcat上,java可以) 一個 HTTP Server 關(guān)心的是 HTTP 協(xié)議層面的傳輸和訪問控制,所以在 Apache/Nginx 上你可以看到代理、負(fù)載均衡等功能。客戶端通過 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 運行需要的標(biāo)準(zhǔn)類庫、Interface 等。為了方便,應(yīng)用服務(wù)器往往也會集成 HTTP Server 的功能,但是不如專業(yè)的 HTTP Server 那么強(qiáng)大,所以應(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)文章
Svn安裝和使用_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了Svn安裝和使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08
通過IBM 3650 M2服務(wù)器的ServerGuide工具配置RAID圖文教程
這篇文章主要介紹了通過IBM 3650 M2服務(wù)器的ServerGuide工具配置RAID圖文教程,需要的朋友可以參考下2018-05-05
在Linux下用軟件實現(xiàn)RAID功能的實現(xiàn)方法
安裝程式實現(xiàn)軟件RAID代替硬件RAID的方法,今天再進(jìn)一步談?wù)勈謩觿?chuàng)建軟RAID和日常維護(hù)的方法。2011-04-04
k8s監(jiān)控數(shù)據(jù)組件Pod自動化進(jìn)行擴(kuò)縮容HPA
這篇文章主要為大家介紹了監(jiān)控數(shù)據(jù)組件Pod自動化進(jìn)行擴(kuò)縮容-HPA的全面講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03
禁止IP訪問網(wǎng)站的多種方法分享(linux,php,nginx,apache)
禁止IP訪問網(wǎng)站的各種方法有許多,不同服務(wù)器環(huán)境的方法會所有不同,下面我總結(jié)我們常用的禁止IP訪問網(wǎng)站的實現(xiàn)配置方法,希望對大家會有所幫助2014-07-07

