1. 程式人生 > >Web服務器處理連接請求的架構方式

Web服務器處理連接請求的架構方式

HTTP

1、單線程web服務器
此種架構方式中,web服務器一次處理一個請求,結束後讀取並處理下一個請求。在某請求處理過程中,其它所有的請求將被忽略,因此,在並發請求較多的場景中將會出現嚴重的必能問題。
2、多進程/多線程web服務器
此種架構方式中,web服務器生成多個進程或線程並行處理多個用戶請求,進程或線程可以按需或事先生成。有的web服務器應用程序為每個用戶請求生成一個單獨的進程或線程來進行響應,不過,一旦並發請求數量達到成千上萬時,多個同時運行的進程或線程將會消耗大量的系統資源。
3.I/O多路復用web服務器
為了能夠支持更多的並發用戶請求,越來越多的web服務器正在采用多種復用的架構——同步監控所有的連接請求的活動狀態,當一個連接的狀態發生改變時(如數據準備完畢或發生某錯誤),將為其執行一系列特定操作;在操作完成後,此連接將重新變回暫時的穩定態並返回至打開的連接列表中,直到下一次的狀態改變。由於其多路復用的特性,進程或線程不會被空閑的連接所占用,因而可以提供高效的工作模式。
4、多路復用多線程web服務器
將多進程和多路復用的功能結合起來形成的web服務器架構,其避免了讓一個進程服務於過多的用戶請求,並能充分利用多CPU主機所提供的計算能力。 web服務器自身並不處理任何動態內容,它是如何響應客戶端的動態內容請求呢? 通過某種協議調用額外的其它進程來運行這個動態頁面,並將結果取回來以後返回給WEB服務器,進而響應客戶端。

Web服務器處理連接請求的架構方式