PHP CGI(Common Gateway Interface)和FastCGI(Fast Common Gateway Interface)是兩種不同的方式來(lái)處理PHP腳本。
CGI:CGI是一種通用的網(wǎng)關(guān)接口,它是一種進(jìn)程外的處理方式。當(dāng)Web服務(wù)器接收到一個(gè)請(qǐng)求時(shí),它會(huì)啟動(dòng)一個(gè)CGI進(jìn)程來(lái)處理該請(qǐng)求,并將請(qǐng)求傳遞給CGI進(jìn)程。CGI進(jìn)程會(huì)執(zhí)行PHP腳本,并將結(jié)果返回給Web服務(wù)器,然后Web服務(wù)器將結(jié)果發(fā)送給客戶端。每次請(qǐng)求都需要啟動(dòng)一個(gè)新的CGI進(jìn)程,這會(huì)造成一定的性能損失。
FastCGI:FastCGI是一種改進(jìn)的CGI協(xié)議。它與CGI的主要區(qū)別在于,F(xiàn)astCGI進(jìn)程可以保持長(zhǎng)時(shí)間運(yùn)行,以便處理多個(gè)請(qǐng)求。當(dāng)Web服務(wù)器接收到一個(gè)請(qǐng)求時(shí),它會(huì)將請(qǐng)求傳遞給已經(jīng)啟動(dòng)的FastCGI進(jìn)程,而不是每次都啟動(dòng)一個(gè)新的進(jìn)程。這樣可以減少進(jìn)程啟動(dòng)和關(guān)閉的開(kāi)銷(xiāo),提高性能。FastCGI還支持并發(fā)處理請(qǐng)求,可以同時(shí)處理多個(gè)請(qǐng)求,提高了PHP腳本的運(yùn)行效率。
總結(jié):
CGI是進(jìn)程外的處理方式,每次請(qǐng)求都需要啟動(dòng)一個(gè)新的進(jìn)程,性能較低;
FastCGI是一種改進(jìn)的CGI協(xié)議,支持長(zhǎng)時(shí)間運(yùn)行的進(jìn)程,可以并發(fā)處理多個(gè)請(qǐng)求,性能較高。