CGI在持久HTTP连接上处理多个请求

时间:2010-08-04 18:42:59

标签: http cgi apache

CGI程序通常会收到一个HTTP请求。

HTTP 1.1支持持久HTTP连接,从而在不关闭连接的情况下发出多个HTTP请求/响应。

CGI程序(或类似机制)是否有办法在同一连接上处理多个HTTP请求/响应?

我正在使用Apache httpd。

2 个答案:

答案 0 :(得分:2)

Keep-alives是Web服务器完全处理的更高级别的HTTP功能之一。它们超出了CGI应用程序本身的范围。

通过Apache mod_cgi访问CGI脚本对我来说是keep-alive。浏览器重新使用相同的TCP连接来获取页面,然后重新获取它所引用的资源,而不需要有任何特殊的脚本。

如果你的意思是你希望有相同的CGI 进程处理一个请求,然后是下一个请求(而不是流程结束和生成的新请求),那么我担心这不是可能。在您的脚本可以执行任何操作之前,Web服务器将拦截保持活动并使它们看起来像单个请求。 (如果要这样做以提高性能,请考虑使用其他网关接口,例如FastCGI或特定于语言的选项,如WSGI。)

答案 1 :(得分:1)

SCGI听起来和你想要的完全一样。它与FastCGI类似,但实现起来更简单(S代表Simple:))。