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