Web 服務器與應用服務器的區别是什麽?
時間:2022-01-18 作者:管理員(yuán) 點擊:323
“web服務器”負責響應來自用戶端比如浏覽器的請求,并向客戶端返回靜态資(zī)源的網頁,比如圖片,視頻(pín),網盤上分(fēn)享的各種文件下(xià)載等。Web 服務器隻處理靜态的文件而不處理動态内容,僅接受和完成HTTP超文本傳輸協議的請求。目前流行的用來搭建Web服務可選軟件有Apache,Nginx及微軟的IIS等。
應用服務器爲客戶端提供對業務邏輯的訪問。這種服務器根據客戶端的請求,将數據轉換爲動态内容。比如上面打開(kāi)個人微博的例子,需要應用服務器執行程序,從數據庫中(zhōng)找到用戶的最新微博信息再把信息轉換成HTML網頁顯示在客戶面前。通常滿足一(yī)個用戶的需求還需要數據庫來支持。
簡而言之,應用服務器處理業務邏輯,web服務器則主要是讓客戶可以通過浏覽器進行訪問,處理HTML文件,web服務器通常比應用服務器簡單。
WEB服務器:Apache、IIS、Nginx(也是反向代理服務器)Web服務器通常隻需支持HTTP協議,單純處理頁面用的
應用服務器:Tomcat、Weblogic、Jboss,WildFly(JBossAS 更名後的社區版)。應用服務器提供的是客戶端可以調用的方法,需要支持EJB JNDI JMX 等J2EE API。 比如,Apache屬于Web服務器,Weblogic屬于應用服務器。 不過,現在大(dà)多數應用服務器也包含了Web服務器的功能
應用服務器的搭建很多時候依賴于應用程序的開(kāi)發語言,各種編程語言生(shēng)态下(xià)對應不同的軟件,比如使用java語言開(kāi)發的項目 通常選擇tomcat 或JBoss等作爲程序運行的應用服務器,而使用python語言開(kāi)發web應用一(yī)般會選擇 django等Python框架下(xià)的軟件,來作爲它的應用服務器。
很多遊戲的後台服務器,客戶端直接連接到中(zhōng)心網關:一(yī)種情況,由中(zhōng)心網關将其連接導向相應的邏輯服務器,網關完成該任務之後就不再參與客戶端和服務器的對話(huà);另一(yī)種情況,網關負責轉發客戶端的請求給相應的服務器,同時也負責将服務器回複的内容轉發給客戶端。
可以認爲,這種情況下(xià),客戶端是和服務器直接連接并會話(huà)的,這也是目前大(dà)多數遊戲服務器采用的方式,通信協議也是TCP直接連接(可以在TCP層面上定義簡單的自己的協議層),這種模型簡單清晰,數據流(data flow)也很單純。
至于緩存,有,但是和web的緩存感覺很不一(yī)樣,客戶端的實時數據一(yī)般會保存在緩存裏面,一(yī)般會是一(yī)些專用的緩存服務器,例如redis,memchache等。一(yī)些利用C,C++做的遊戲服務器,可以自己申請内存來作爲緩存,對于這種自己申請内存做緩存管理的話(huà),首先機制很複雜(zá),
其次,如果緩存的數據過多,那麽風險越大(dà),因爲如果機器掉電(diàn)或者宕機的話(huà),數據就會丢失。如果不想數據丢失的話(huà),那麽就要一(yī)套更複雜(zá)的機制來保存這些在内存中(zhōng)的數據
當 Web 浏覽器成爲主要的客戶端時,應用服務器和 Web 服務器之間的界限變得模糊。 大(dà)多數 Web 服務器都有支持動态内容生(shēng)成的腳本語言(ASP、JSP、PHP等)插件。
例如,如果我(wǒ)(wǒ)們将 .NET 插件添加到 IIS 環境中(zhōng),或者把PHP插件添加到Apache中(zhōng),我(wǒ)(wǒ)們就可以在 Web 服務器端爲客戶端提供動态内容了。由于技術的重疊,最流行的服務器通常是這兩種類型的混合。從而可以确保最佳系統速度和用戶體(tǐ)驗。