簡述CGI、mod_php與FastCGI之間的區別

   CGI模式在2000年或更早的時候用得比較多, 以前web服務器一般只處理靜態的請求,如果碰到一個動態請求怎麼辦呢?web服務器會根據這次請求的內容,然後會fork一個新進程來運行外部c程序 (或perl腳本…), 這個進程會把處理完的數據返回給web服務器,最後web服務器把內容發送給用戶,剛纔fork的進程也隨之退出。 如果下次用戶還請求改動態腳本,那麼web服務器又再次fork一個新進程,週而復始的進行。

   mod_php是目前流行的模式,web服務 器可以內置perl解釋器或php解釋器。 也就是說這些解釋器做成模塊的方式,web服務器會在啓動的時候就啓動這些解釋器。 當有新的動態請求進來時,web服務器就是自己解析這些perl或php腳本,省得重新fork一個進程,效率提高了。

   FastCGI模式 是,web服務器收到一個請求時,他不會重新fork一個進程(因爲這個進程在web服務器啓動時就開啓了,而且不會退出),web 服務器直接把內容傳遞給這個進程(進程間通信,但fastcgi使用了別的方式,tcp方式通信),這個進程收到請求後進行處理,把結果返回給web服務 器,最後自己接着等待下一個請求的到來,而不是退出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章