首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CGI >

fastcgi程序返回响应时,代码中为什么不需要加http1.1 200 ok解决思路

2012-02-25 
fastcgi程序返回响应时,代码中为什么不需要加http1.1 200 ok项目中用到fastcgi编写了上传、下载服务。当fast

fastcgi程序返回响应时,代码中为什么不需要加http1.1 200 ok
项目中用到fastcgi编写了上传、下载服务。 
当fastcgi应用程序处理完毕后,要返回响应给浏览器时,不知为什么fastcgi返回流中,要是按照http协议来写的话,apache就会报错。 

部分代码如下所示: 
FCGX_FPrintF(request.out, 
/*"HTTP/1.1 200 OK;\n"*/
"Accept-Ranges: bytes;\n" 
"Content-Type: text/plain;\n" 
"Content-Disposition: attachment; filename=\"%s\";charset=gb2312;\n" 
"Content-Length: %d\n\n" 
, rDownHandle.strFileName.c_str(), unSizeLeft); 

如上代码所示,只要加上HTTP/1.1 200 OK后,apache就会报错:aborted: error parsing headers: malformed header 'HTTP/1.1 200 OK', 

注释掉以后,就可以正常输出了。那么是apache和fastcgi两者,究竟是谁给默认加上了这句了呢? 



对于返回200 ok的,我可以一律注释掉这个返回码,但是如果我要返回其它错误码给浏览器时,该怎么处理呢? 比如返回 HTTP/1.1 206 Partial Content 该怎么写?或者该如何设置配置文件等? 


[解决办法]
为什么不需要加那一行,这正是fcgi的特点,共同的响应体不放在每次循环执行中。

热点排行