cgi和fastcgi的區別

最早的Web服務器只處理靜態的html文件

隨着技術的不斷髮展,網站越來越複雜,然後出現到動態網站,但是服務並不能直接運行php,asp這個的動態語言文件
然後出現了cgi,cgi只是接口協議,
cgi是怎麼執行動態請求的
web服務器接受到請求,然後根據內容,fork一個新進程,這個進程會把處理完的數據返回給web服務器,最後web服務器把內容發送給用戶,剛纔fork的進程也隨之退出,如果下次用戶還請求改動態腳本,那麼web服務器又再次fork一個新進程。這個方式的問題在與每次請求都要新開一個進程,用完之後又要關閉,這是CGI最爲人詬病的fork-and-execute 模式,效率上比較低
後來出現了一種更高級的方式,web服務器收到一個請求時,他不會重新fork一個進程(因爲這個進程在web服務器啓動時就開啓了,而且不會退出),web服務器直接把內容傳遞給這個進程,這個進程收到請求後進行處理,把結果返回給web服務器,最後自己接着等待下一個請求的到來,而不是退出。 這就是fastcgi。效率上比cgi高很多
我在網上找了兩張解釋比較好的圖
cgi這裏寫圖片描述
fastcgi
這裏寫圖片描述

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