生根于自由的土壤-FastCGI之4
發(fā)表時(shí)間:2024-02-08 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]我們?cè)倏纯慈绾斡肍astCGI來(lái)寫這個(gè)程序: 示例二:NUMBER.FCGI #!/usr/bin/perl #為了使用FastCGI軟件包,需要加入如下聲明: Use FCGI; #初始化段和CGI初始化段一樣。 # Variables my $End = 10; my $i; while (F...
我們?cè)倏纯慈绾斡肍astCGI來(lái)寫這個(gè)程序:
示例二:NUMBER.FCGI
#!/usr/bin/perl
#為了使用FastCGI軟件包,需要加入如下聲明:
Use FCGI;
#初始化段和CGI初始化段一樣。
# Variables
my $End = 10;
my $i;
while (FCGIaccpet() 〉= 0) {
# Content Header
print ″Content-Type: multipart/x-mixed-replace;boundary=BOUNDARY\n\n″;
#因?yàn)槊總(gè)請(qǐng)求都要有相應(yīng)的Content-Type頭標(biāo)來(lái)響應(yīng),所以我們把它也作為響應(yīng)循環(huán)的主體代碼段。
# Main loop
for ($i=0;$i〈$End;$i++)
{ print "$i〈br〉;}
}
exit 0;
因?yàn)镕astCGI和服務(wù)器應(yīng)用程序一樣運(yùn)行,所以只有當(dāng)FastCGI接收到結(jié)束信號(hào)時(shí)才退出,否則它就一直運(yùn)行。
雖然,從CGI轉(zhuǎn)向FastCGI是非常容易的,但在具體的應(yīng)用實(shí)例中我們還要注意,如果原來(lái)的CGI程序中存在可能使主體代碼不能正常循環(huán)運(yùn)行的代碼時(shí),必須對(duì)它進(jìn)行修改,即對(duì)一些變量、數(shù)組重新初始化。FastCGI應(yīng)用程序必須保證在處理任何一個(gè)請(qǐng)求時(shí),現(xiàn)有的任何狀態(tài)都不能對(duì)后來(lái)的請(qǐng)求產(chǎn)生影響。另外,程序員在編寫CGI程序時(shí),模塊化設(shè)計(jì)可以使主程序運(yùn)行時(shí)對(duì)那些不經(jīng)常用到的功能模塊相對(duì)“獨(dú)立",只有在需要時(shí)才被調(diào)入運(yùn)行中,這樣可以加快主程序的運(yùn)行。但是在轉(zhuǎn)向FastCGI應(yīng)用時(shí)就要考慮盡量在一個(gè)程序段中完成相關(guān)的功能,以減少程序運(yùn)行時(shí)產(chǎn)生的進(jìn)程數(shù),而且程序各功能塊之間又能充分地共享緩存。