Python web伺服器怎麼處理請求

coyan發表於2021-09-11

Python web伺服器怎麼處理請求

web伺服器處理連線請求的四種架構方式:

1、單執行緒web伺服器

此種架構方式中,web伺服器一次處理一個請求,結束後讀取並處理下一個請求。在某請求處理過程中,其它所有的請求將被忽略,因此,在併發請求較多的場景中將會出現嚴重的必能問題。

相關推薦:《》

2、多程式/多執行緒web伺服器

此種架構方式中,web伺服器生成多個程式或執行緒並行處理多個使用者請求,程式或執行緒可以按需或事先生成。有的web伺服器應用程式為每個使用者請求生成一個單獨的程式或執行緒來進行響應,不過,一旦併發請求數量達到成千上萬時,多個同時執行的程式或執行緒將會消耗大量的系統資源。

3、I/O多路複用web伺服器

為了能夠支援更多的併發使用者請求,越來越多的web伺服器正在採用多種複用的架構——同步監控所有的連線請求的活動狀態,當一個連線的狀態發生改變時(如資料準備完畢或發生某錯誤),將為其執行一系列特定操作;在操作完成後,此連線將重新變回暫時的穩定態並返回至開啟的連線列表中,直到下一次的狀態改變。由於其多路複用的特性,程式或執行緒不會被空閒的連線所佔用,因而可以提供高效的工作模式。

4、多路複用多執行緒web伺服器

將多程式和多路複用的功能結合起來形成的web伺服器架構,其避免了讓一個程式服務於過多的使用者請求,並能充分利用多CPU主機所提供的計算能力。 web伺服器自身並不處理任何動態內容,它是如何響應客戶端的動態內容請求呢? 透過某種協議呼叫額外的其它程式來執行這個動態頁面,並將結果取回來以後返回給WEB伺服器,進而響應客戶端。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2236/viewspace-2836176/,如需轉載,請註明出處,否則將追究法律責任。

相關文章