[網際網路] Web Server 是什麼
此篇為各筆記之整理,非原創內容,資料來源可見下方連結與文後參考資料。
Web Server 的幾種分類
What is a web server? @ MDN > Learn Web Development > Common Questions
Web Server 在不同的使用時機可能會指稱不同的意思:
- 從硬體(hardware)的層面來說,它指的是保存有伺服器軟體和網頁相關檔案的實體電腦,透過 web server 將會連接到網際網路,並且與其他網路上的裝置進行物理上的資料交換。
- 從軟體(software)的層面來說,web server 則是控制使用者可以存取到哪些檔案,更細的來說,HTTP web server 就是在處理 request 和 response 之間的關係
Web Server 又可以分成 static web server 和 dynamic web server
- static web server 或稱 stack,通常包含實體主機(hardware),並解安裝有 HTTP server(software)在內,當 client 透過瀏覽器發送請求時,靜態網頁伺服器會直接將原始的檔案不加修改的傳回去給 client。
- dynamic web server 包含了 static web serve 以及許多其他的軟體,特別像是 application server 和 database,當 client 透過瀏覽器發送請求後,會先將檔案的內容進行調整(例如,把資料庫的資料放入 HTML 模板中)後才傳送回去給 client。
Web Server 和 Application Server 的差別
Web Server vs. Application Server @ IBM Cloud
實際上,並沒有明確的規範來區分 web server 和 application server 之間的差異,但一般來說可以這樣區分:
- web server 的主要工作根據瀏覽器發送的請求,回傳靜態的網頁檔 案(HTML pages、檔案、圖片、影片),並且通常是以 HTTP protocol 來進行。
- application server 雖然也會傳送網頁內容,但它主要的工作是在處理商業邏輯(business logic),其中包含產生動態的內容,像是交易結果、報告分析的等等。
然而,實際上,隨著使用者對於網頁應用程式的期待以及效能的提升,web server 和 application server 之間的界線越來越不明確。大部分的 web server 都支援使用指令碼語言(scripting language),並且提供網頁應用程式可以使用反向代理(reverse proxy)、叢集(clustering)、遺失備援(redundant)和負載平衡(load balancing)的服務。
常見的 web server 包含:
- Nginx:這是一套開源的 web server 服務,其中包含了反向代理、負載平衡、郵件代理(mail proxy)、HTTP 快取等功能,知名的使用者包括 Dropbox, Netflix 和 Zynga。
- Apache HTTP Server:又稱作 Apache,是另一個非常熱門的開源免費 web server。
- Apache Tomcat:主要提供 Java application server 使用
- Glassfish:主要提供 Java application server 使用
資料來源
- What is a web server? @ MDN > Learn Web Development > Common Questions
- Web Server vs. Application Server @ IBM Cloud Learn Hub
- Web Server & Nginx — (1) @ 莫力全 Kyle Mo