BLOG
網站專欄 Q & A
網域與主機

應用程式伺服器是什麼?與網頁伺服器的差別、運作流程與常見軟體

網頁伺服器負責把內容送出去,但登入驗證、購物車計算、訂單成立這些「會動」的邏輯,是由應用程式伺服器執行的。它是網站與企業系統真正的引擎,卻也是最常和網頁伺服器混為一談的名詞。這篇文章說明應用程式伺服器是什麼、和網頁伺服器差在哪、一次請求怎麼在三層架構中流動、各語言生態常見的軟體,以及什麼規模的網站才需要獨立的應用程式伺服器。本文屬於《伺服器系列》,總覽見〈伺服器是什麼〉。

應用程式伺服器示意圖:位於網頁伺服器與資料庫之間,執行後端商業邏輯

一、應用程式伺服器是什麼?

應用程式伺服器(Application Server,常簡稱 AP Server)是執行後端程式、處理商業邏輯並與資料庫溝通的伺服器軟體,把處理結果交給網頁伺服器或直接以 API 回應客戶端。登入時比對帳號密碼、結帳時計算折扣與庫存、送出表單時驗證欄位並寄信,都是它在做的事。

它的另一個角色是「執行環境」:Java 程式需要 Tomcat 這類容器才能對外提供服務,Python 網站需要 Gunicorn 或 Uvicorn 常駐執行,PHP 則由 PHP-FPM 管理一群常駐的處理程序。這些軟體統稱應用程式伺服器,雖然名字與形態不同,位置都一樣:在網頁伺服器後面、資料庫前面。

二、和網頁伺服器差在哪?

網頁伺服器管「收與送」,應用程式伺服器管「算」。兩者常裝在同一台機器,甚至同一個程式能同時扮演兩種角色,所以容易混淆,但職責可以分得很清楚:

項目 網頁伺服器 應用程式伺服器
主要工作接收 HTTP 請求、送出靜態檔案、加密、轉址、日誌執行程式邏輯、存取資料庫、產生動態內容或 API 回應
處理的內容HTML 檔、圖片、CSS、JavaScript 等現成檔案每次請求都可能不同的結果
代表軟體Apache、Nginx、IISTomcat、WildFly、PHP-FPM、Gunicorn、Node.js、Kestrel
效能瓶頸連線數、頻寬、磁碟讀取CPU 運算、記憶體、資料庫等待時間
擴充方式加快取、加 CDN多開處理程序、多台機器加負載平衡

網頁伺服器本身的運作、常見軟體與對 SEO 的影響,見〈網頁伺服器是什麼〉,本文不重複。

三、一次請求的流程:三層式架構

網頁伺服器、應用程式伺服器、資料庫伺服器合稱三層式架構(Three-tier Architecture),一次動態請求會依序經過三層再原路返回。以「使用者送出詢價表單」為例:

  • 網頁伺服器接收收到 POST 請求,判斷這不是靜態檔案,透過 FastCGI、反向代理或連接器轉交應用程式伺服器。
  • 應用程式伺服器處理檢查欄位是否完整、驗證碼是否正確、是否為機器人;通過後組成一筆資料。
  • 資料庫寫入應用程式伺服器連到資料庫伺服器寫入詢價紀錄,並取回流水號。
  • 附帶動作透過郵件伺服器寄出通知信,必要時呼叫外部 API(例如 LINE 通知)。
  • 回應產生「已收到您的詢價」頁面或 JSON,交回網頁伺服器送給瀏覽器。

把三層分開的好處是各層可以獨立擴充與更換:流量大時多開幾個應用程式伺服器的處理程序,資料量大時升級資料庫主機,網頁伺服器前面再加 CDN,彼此不互相牽制。

四、應用程式伺服器的主要功能

  • 執行商業邏輯:驗證、計算、流程控制,也就是程式碼真正在做的事。
  • 管理連線與併發:維持一群常駐的處理程序或執行緒,同時服務多個請求,並在請求間重用資料庫連線(連線池)。
  • 會話管理:記住「這位訪客已經登入」,把狀態保存在記憶體、資料庫或 Redis 這類快取中。
  • 提供 API:讓網頁前端、手機 App 或其他系統以 REST 或 GraphQL 取用資料。
  • 安全與授權:身分驗證、權限檢查、輸入驗證,防止 SQL 注入與跨站腳本等攻擊。
  • 交易與排程:確保多步驟操作要全部成功或全部取消,並執行定時工作(每日報表、寄送提醒)。

五、各語言生態的常見軟體

「應用程式伺服器」在 Java 世界是一類明確的產品;在其他語言則是各自的常駐執行器,名稱不同、角色相同。

語言生態 常見軟體 說明
JavaApache Tomcat、Jetty、WildFly(原 JBoss)、Payara(原 GlassFish)、IBM WebSphere、Oracle WebLogicTomcat 與 Jetty 是輕量容器;WildFly 以後是完整的 Jakarta EE 應用程式伺服器,金融與政府系統常見。JSP 與 Servlet 就跑在這裡,見〈JSP 是什麼〉。
PHPPHP-FPM常駐的 PHP 處理程序管理器,由 Nginx 或 Apache 透過 FastCGI 呼叫,是現代 PHP 主機的標準架構;語言介紹見〈PHP 是什麼〉。
PythonGunicorn、uWSGI(WSGI)、Uvicorn(ASGI)執行 Django、Flask、FastAPI 應用,前面通常放 Nginx。
.NETKestrel、IISASP.NET Core 內建 Kestrel;舊版 ASP.NET 由 IIS 同時擔任網頁與應用程式伺服器。
JavaScriptNode.js(Express、Fastify、Next.js 伺服器)Node.js 本身就是應用程式伺服器,前面加 Nginx 處理靜態檔案與 HTTPS。
RubyPuma、Unicorn執行 Ruby on Rails 應用。

六、什麼時候需要獨立的應用程式伺服器?

官網與中小型網站通常不需要「另一台」應用程式伺服器,它已經以 PHP-FPM 這類形式包在主機方案裡;需要獨立部署的是流量大、邏輯重或要對外提供 API 的系統。從網頁設計公司的角度,我們用三個訊號判斷:

  • 語言環境:Java、Python、Node.js 的網站一定要有自己的應用程式伺服器程序,共享虛擬主機多半不提供,要用 VPS 或雲端主機;PHP 網站則任何主機都能跑。
  • 流量與運算:活動期間同時上線人數暴增、或每個請求都要做複雜計算(報價引擎、推薦系統)時,把應用層獨立出來才能單獨擴充。
  • 多個前端共用後端:網站、App、合作夥伴系統都要取同一批資料,應用程式伺服器以 API 形式獨立存在最合理。

本站(newscan.com.tw)是 PHP 網站,應用層由 PHP-FPM 承擔,沒有獨立的應用程式伺服器機器,這對以官網與詢問單為目標的網站已經足夠。整體技術架構怎麼選,見〈網頁程式設計是什麼〉;主機方案的選擇見〈虛擬主機是什麼〉。

七、結論

應用程式伺服器是三層架構中負責「算」的那一層:執行程式邏輯、管理連線與會話、存取資料庫、提供 API。在 Java 世界它是一類產品,在其他語言則是各自的常駐執行器。網站主不必自己選型,但要知道自己的網站用哪種語言、應用層跑在哪裡,這決定了能租哪種主機、遇到效能問題時該擴充哪一層。

延伸閱讀:ASP.NET 是什麼

八、常見問答 FAQ

應用程式伺服器是什麼?
應用程式伺服器(Application Server,簡稱 AP Server)是執行後端程式、處理商業邏輯並與資料庫溝通的伺服器軟體,把處理結果交給網頁伺服器或直接以 API 回應客戶端。登入時比對帳號密碼、結帳時計算折扣與庫存、送出表單時驗證欄位並寄信,都是它的工作。在 Java 世界它是一類明確的產品(Tomcat、WildFly、WebSphere);在其他語言則是各自的常駐執行器,例如 PHP 的 PHP-FPM、Python 的 Gunicorn 與 Uvicorn、.NET 的 Kestrel、JavaScript 的 Node.js,名稱不同、位置相同:在網頁伺服器後面、資料庫前面。
應用程式伺服器和網頁伺服器有什麼不同?
網頁伺服器管收與送:接收 HTTP 請求、送出 HTML 檔、圖片等現成檔案、處理加密、轉址與日誌;應用程式伺服器管算:執行程式邏輯、存取資料庫、產生每次都可能不同的動態內容或 API。兩者常裝在同一台機器,Nginx 或 IIS 甚至能同時扮演兩種角色,所以容易混淆。效能瓶頸也不同:網頁伺服器卡在連線數與頻寬,靠快取與 CDN 擴充;應用程式伺服器卡在 CPU、記憶體與資料庫等待時間,靠多開處理程序或多台機器加負載平衡擴充。
什麼是三層式架構?
三層式架構是把系統分成網頁伺服器、應用程式伺服器、資料庫伺服器三層,一次動態請求依序經過三層再原路返回。以送出詢價表單為例:網頁伺服器接收請求並轉交應用程式伺服器;應用程式伺服器驗證欄位與驗證碼、組成資料;再連到資料庫伺服器寫入並取回流水號;必要時透過郵件伺服器寄通知;最後產生回應頁面交回網頁伺服器送給瀏覽器。分層的好處是各層能獨立擴充與更換:流量大時多開應用層程序,資料量大時升級資料庫,前端再加 CDN,彼此不互相牽制。
Tomcat 是什麼?
Apache Tomcat 是最普及的開放原始碼 Java 網頁容器,負責執行 Servlet、JSP 與以 Spring Boot 等框架寫成的 Java 網頁應用,是 Java 生態最常見的應用程式伺服器。相較於 WildFly、WebSphere、WebLogic 這類完整的 Jakarta EE 應用程式伺服器,Tomcat 只實作網頁相關的規格,體積小、啟動快,Spring Boot 預設就內嵌 Tomcat。它通常搭配 Nginx 或 Apache 放在前面處理靜態檔案與 HTTPS。台灣的金融、政府與企業內部系統大量使用 Tomcat,需要 Java 環境的 VPS 或雲端主機才能執行,一般 PHP 虛擬主機不提供。
一般公司網站需要獨立的應用程式伺服器嗎?
官網與中小型網站通常不需要另一台獨立的應用程式伺服器,它已經以 PHP-FPM 這類形式包在主機方案裡,網頁伺服器透過 FastCGI 直接呼叫。需要獨立部署的有三種情況:一、網站用 Java、Python、Node.js 開發,這些語言一定要有自己的常駐程序,共享虛擬主機多半不提供,要用 VPS 或雲端主機;二、流量或運算量大,例如活動期同時上線人數暴增或每個請求都要做複雜計算,把應用層獨立出來才能單獨擴充;三、網站、App 與合作夥伴系統要共用同一批資料,以 API 形式獨立的應用程式伺服器最合理。

參考來源

  1. Apache Software Foundation,〈Apache Tomcat Documentation〉,Apache 官方文件。
  2. PHP Group,〈FastCGI Process Manager (FPM)〉,PHP 官方文件。
  3. Microsoft Learn,〈ASP.NET Core 中的 Kestrel 網頁伺服器〉,Microsoft 官方文件。
  4. IBM,〈Three-Tier Architecture〉,IBM 官方說明。
  5. 新視野網頁設計,〈網頁伺服器是什麼?運作原理、Apache 與 Nginx 差別及對 SEO 的影響〉,本站自有內容。

各語言常駐執行器的名稱與定位依撰寫時查閱的官方文件整理;第六節為本站替客戶規劃架構時的實務判斷,不涉及特定客戶資料。

關於作者

內容揭露:本文由新視野網頁設計 SEO 團隊撰寫。文中連結的站內指南與延伸閱讀均為本站自有內容;新視野提供網頁設計與 SEO/AI SEO 服務,讀者在採用本文建議前請自行評估是否符合自身情況。文中引用的第三方研究與官方文件皆附可點擊出處,歡迎查證。

新視野網頁設計 SEO 團隊

新視野網頁設計自 2005 年起投入企業網站建置與搜尋行銷,服務範圍涵蓋 RWD 網站設計、技術 SEO、結構化資料佈署,以及 AI 搜尋時代的 AEO/GEO 內容優化。本文由新視野 SEO 團隊撰寫、審閱並持續維護更新。

服務據點:
台中(總公司)台中市南區忠明南路 758 號 21 樓 B4台北高雄
聯絡電話:
04-2260-1329
公司資訊:
關於我們公司位置線上詢價
對外平台:
FacebookLinkedIn
本站同主題內容:
伺服器是什麼網頁伺服器是什麼資料庫伺服器是什麼JSP 是什麼

歡迎推廣本文,請務必連結(LINK)本文出處:新視野網頁設計公司