Web 伺服器和應用程式伺服器之間有什麼區別?


Web 伺服器和應用程式伺服器之間有什麼區別?

Web 伺服器和應用程式伺服器是允許透過網際網路交換資料和服務的技術。用戶端-伺服器架構是網際網路的基礎機制。當您造訪網站或應用程式時,您的瀏覽器 (作為用戶端) 從遠端伺服器請求資料並顯示回應。Web 伺服器是一個軟體元件,其提供回應用戶端請求的影像、檔案和文字等靜態資料。應用程式伺服器新增了業務邏輯來對 Web 伺服器的回應進行運算。這兩個詞彙都是同義使用的,目前最流行的伺服器軟體解決方案是混合 Web 應用程式伺服器。

它們如何運作:Web 伺服器與應用程式伺服器

Web 伺服器與應用程式伺服器具有不同的獨立程序。但是,它們對最終使用者不可見。

Web 伺服器如何運作

Web 伺服器是託管網站程式碼和資料的技術。當您在瀏覽器中輸入 URL 時,URL 實際上是 Web 伺服器的地址識別碼。

您的瀏覽器和 Web 伺服器通訊如下:

  1. 瀏覽器使用 URL 來尋找伺服器的 IP 地址
  2. 瀏覽器傳送資訊的 HTTP 請求
  3. Web 伺服器與資料庫伺服器進行通訊,以查找相關資料
  4. 在 HTTP 回應瀏覽器時,Web 伺服器會傳回靜態內容,如 HTML 頁面、影像、影片或檔案
  5. 然後,瀏覽器會向您顯示資訊

託管靜態內容 (例如部落格、標頭影像或文章) 的網站可以在 Web 伺服器上執行。但是,大多數網站和 Web 應用程式更具互動性,並且需要應用程式伺服器。

應用程式伺服器如何運作

應用程式伺服器透過支援動態內容產生、應用程式邏輯以及與各種資源的整合,來擴展 Web 伺服器的功能。它提供了一個執行期環境,您可以在其中執行應用程式程式碼,並與其他軟體元件 (如簡訊系統和資料庫) 互動。相較於 Web 伺服器,應用程式伺服器使用業務邏輯,進而能更有意義地轉換資料。

當您嘗試存取網站上的互動式內容時,程序的運作方式如下:

  1. 瀏覽器使用 URL 來尋找伺服器的 IP 地址
  2. 瀏覽器傳送資訊的 HTTP 請求
  3. Web 伺服器將請求傳輸到應用程式伺服器
  4. 應用程式伺服器可套用業務邏輯,並與其他伺服器和第三方系統進行通訊,以履行請求
  5. 應用程式伺服器會呈現新的 HTML 網頁,並將其作為 Web 伺服器的回應傳回
  6. Web 伺服器向瀏覽器傳回回應
  7. 瀏覽器會向您顯示資訊

若要使用電子商務網站的範例,則在將商品新增至購物車或進行商品結賬時,您會與應用程式伺服器互動。

主要差異:Web 伺服器與應用程式伺服器

Web 和應用程式伺服器有幾個主要差異,而這些差異使其各具特色。

涵蓋的任務

Web 伺服器可託管網站並提供對簡單請求的回應。Web 伺服器還記錄伺服器活動並允許伺服器端指令碼處理。

另一方面,應用程式伺服器具有更複雜的任務集。應用程式伺服器可與企業系統、服務和資料庫連線,進而處理業務邏輯以產生動態內容。

使用的通訊協定

Web 伺服器使用的主要通訊協定是 HTTP 通訊協定。不過,不同的 Web 伺服器同樣也支援 FTP 和簡易郵件傳輸協定 (SMTP)。這兩種通訊協定有助於檔案儲存和傳輸以及電子郵件。

除了 Web 伺服器使用的通訊協定外,應用程式伺服器還使用其他通訊協定,來與其他軟體元件進行通訊。例如,他們可使用遠端方法調用 (RMI) 和遠端程序呼叫 (RPC)。

內容類型

Web 伺服器主要提供靜態內容。靜態內容是指伺服器在傳遞之前不需要修改或處理的內容。例如,影像檔案 (如 PNG、GIF 和 JPEG)、可下載的文件 (PDF)、影片和 HTML 檔案都是靜態內容。 

應用程式伺服器主要提供動態內容。動態內容是根據使用者與其互動的方式而變更的內容。例如,動態產生的報告、自訂資料表示、個人化 UI、資料庫結果和處理的 HTML 都是動態內容。

多執行緒

伺服器上的執行緒是獨立的作業路徑,可讓任務並行處理。在多執行緒中,伺服器同時建立和執行多個執行緒,並且每個執行緒要處理單獨的任務或部分任務。支援多執行緒有助於更快地傳遞 Web 內容,同時管理更多 Web 流量。

大多數 Web 伺服器不支持多執行緒。Web 伺服器會將每個新的連線請求放在佇列中,並使用事件迴路來監控新項目並退出佇列。為提高效率,伺服器會使用非阻攔式 I/O 和回呼來處理請求。非阻攔式操作和事件驅動型架構允許 Web 伺服器處理並行連線。

應用程式伺服器使用多執行緒來提供高可擴展性和效率。如果請求需要外部資源,則應用程式伺服器會使用不同的執行緒來涵蓋這些互動。它可以一次處理多個執行緒,並行地為多個用戶端互動提供服務。 

應用程式伺服器和 Web 伺服器如何協同運作?

應用程式伺服器和 Web 伺服器共同運作以處理用戶端要求,並將正確的內容傳遞給使用者。Web 伺服器始終會先收到一個新的請求。如果它可以自行產生資訊,它就會這樣做並傳回 HTTP 回應。它還會檢查使用者請求的資料是否尚未在其快取中。

如果 Web 伺服器無法存取使用者需要的內容,則其會將請求轉寄至應用程式伺服器。應用程式伺服器會處理資料,並使用業務邏輯來提供正確的資訊。然後,它會將請求傳回 Web 伺服器,然後將其傳遞給使用者。在某些架構中,您也可以設定應用程式伺服器,以自行處理 HTTP 請求。

差異摘要:Web 伺服器與應用程式伺服器

 

Web 伺服器

應用程式伺服器

涵蓋的任務

Web 伺服器提供對簡單請求的回應。

應用程式伺服器可提供來自資料庫、服務和企業系統的更複雜的內容。

使用的通訊協定

Web 伺服器主要使用 HTTP。它們還支援 FTP 和 SMTP。

應用程式伺服器支援諸多通訊協定。 

內容類型

Web 伺服器提供靜態內容,例如 HTML 頁面、影像、影片和檔案。 

應用程式伺服器提供動態內容,例如即時更新、個人化資訊和客戶支援。

多執行緒

通常不使用多執行緒。

使用多執行緒,以同時處理請求。 

AWS 如何支援您的 Web 伺服器和應用程式伺服器需求?

Amazon Web Services (AWS) 可提供多種雲端 Web 託管解決方案,進而提供成本低廉的方式來交付 Web 應用程式和網站。如需詳細資訊,請閱讀有關 AWS 的 Web 託管的內容。以下是兩個 AWS Web 託管解決方案:

  • Amazon Lightsail 是使用 AWS 啟動和管理 Web 伺服器最簡單的方法。Lightsail 含有立即開始網站所需的各種項目,包括虛擬機器、以 SSD 為基礎的儲存、資料傳輸、DNS 管理和靜態 IP,而且價格低廉又可預測。
  • Amazon Elastic Compute Cloud (Amazon EC2) 可在雲端為應用程式伺服器提供可調整大小的運算容量。該服務旨在降低開發人員進行 Web 規模雲端運算的難度。它還可實現網站和 Web 應用程式的最大可擴展性和可用性。Amazon EC2 變更了成本結算方式,且您僅需按您實際使用的容量付費。

或者,AWS 提供的技術可讓您用來執行程式碼、管理資料和整合應用程式,而無需管理伺服器。AWS 無伺服器解決方案為您的企業提供高可用性、按用量付費和自動擴展。如需詳細資訊,請前往 AWS 上的無伺服器

以下是使用 AWS 無伺服器服務的方法:

立即建立帳戶,開始使用 AWS 上的 Web 伺服器和應用程式伺服器。