“web服務器”負責響應來自用戶端比如瀏覽器的請求,并向客戶端返回靜態資源的網頁,比如圖片,視頻,網盤上分享的各種文件下載等。Web 服務器只處理靜態的文件而不處理動態內容,僅接收和完成HTTP超文本傳輸協議的請求。目前流行的用來搭建Web服務可選軟件有Apache,Nginx及微軟的IIS等。
應用服務器為客戶端提供對業務邏輯的訪問。這種服務器根據客戶端的請求,將數據轉換為動態內容。比如上面打開個人微博的例子,需要應用服務器執行程序,從數據庫中找到用戶的最新微博信息再把信息轉換成html網頁顯示在客戶面前。通常滿足一個用戶的需求還需要數據庫來支持。
簡而言之,應用服務器處理業務邏輯,web服務器則主要是讓客戶可以通過瀏覽器進行訪問,處理HTML文件,web服務器通常比應用服務器簡單。
WEB服務器:Apache、IIS、Nginx(也是反向代理服務器)Web服務器通常只需支持HTTP協議,單純處理頁面用的
應用服務器:Tomcat、Weblogic、Jboss,WildFly(JBossAS 更名后的社區版)。應用服務器提供的是客戶端可以調用的方法,需要支持EJB JNDI JMX 等J2EE API。 比如,Apache屬于Web服務器,Weblogic屬于應用服務器。 不過,現在大多數應用服務器也包含了Web服務器的功能
應用服務器的搭建很多時候依賴于應用程序的開發語言,各種編程語言生態下對應不同的軟件,比如使用JAVA語言開發的項目 通常選擇tomcat 或JBoss等作為程序運行的應用服務器,而使用Python/ target=_blank class=infotextkey>Python語言開發web應用一般會選擇 django等Python框架下的軟件,來作為它的應用服務器。
很多游戲的后臺服務器,客戶端直接連接到中心網關:一種情況,由中心網關將其連接導向相應的邏輯服務器,網關完成該任務之后就不再參與客戶端和服務器的對話;另一種情況,網關負責轉發客戶端的請求給相應的服務器,同時也負責將服務器回復的內容轉發給客戶端。
可以認為,這種情況下,客戶端是和服務器直接連接并會話的,這也是目前大多數游戲服務器采用的方式,通信協議也是TCP直接連接(可以在TCP層面上定義簡單的自己的協議層),這種模型簡單清晰,數據流(data flow)也很單純。
至于緩存,有,但是和web的緩存感覺很不一樣,客戶端的實時數據一般會保存在緩存里面,一般會是一些專用的緩存服務器,例如redis,memchache等。一些利用C,C++做的游戲服務器,可以自己申請內存來作為緩存,對于這種自己申請內存做緩存管理的話,首先機制很復雜,
其次,如果緩存的數據過多,那么風險越大,因為如果機器掉電或者宕機的話,數據就會丟失。如果不想數據丟失的話,那么就要一套更復雜的機制來保存這些在內存中的數據
當 Web 瀏覽器成為主要的客戶端時,應用服務器和 Web 服務器之間的界限變得模糊。 大多數 Web 服務器都有支持動態內容生成的腳本語言(ASP、JSP、php等)插件。
例如,如果我們將 .NET 插件添加到 IIS 環境中,或者把PHP插件添加到Apache中,我們就可以在 Web 服務器端為客戶端提供動態內容了。由于技術的重疊,最流行的服務器通常是這兩種類型的混合。從而可以確保最佳系統速度和用戶體驗TG:li9047