apache+fastcgi如何使用Content-length和Transfer-Encoding:chunck

C/C++/C#/C++Builder PHP/Apache/Nginx

当我只是用content-type头时

printf(“Content-type:text/plain;charset=UTF-8\n\n”);

apache自己决定如何返回数据时,是Transfer-Encoding:chunck模式传输。

而我的接口因为想尽量快速地通过http接口交互,不想对chunck进行解析。所以我指定Content-length头。

我测试的过程中

printf(“Content-length: 30000000\n”);
printf(“Content-type:text/plain;charset=UTF-8\n\n”);

至少在长度是30000000时,仍然是由我指定的Content-length形式。不会变为chunck。再长不知道。各位可以去测试。我使用的情景不会很大。

另外注意,一旦指定了Content-length。数据实际长度一定要准确,如果数据长度过长,会产生错误无法得到响应。如果数据过短,一直等待造成超时也无法得到数据。总之必须是正确的长度。

当然使用chunck的好处在服务器上面也是好处多多的,可以自由自在地输出数据。不要需要事先准备和拼接。说起来,客户端处理时因为数据已经接收完。处理也是挺快的。看你愿意选择哪种了。