2010-08-04 56 views
2

CGI程序通常会获得一个HTTP请求。CGI处理持久HTTP连接上的多个请求

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

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

我正在使用Apache httpd。

回答

2

保持活动是Web服务器完全处理的高级HTTP功能之一。它们本身就超出了CGI应用程序的范围。

通过Apache mod_cgi访问CGI脚本与我保持联系。浏览器重新使用相同的TCP连接来获取页面,然后使用它引用的资源,而不需要有任何特别的脚本。

如果你的意思是你想拥有同样的CGI 过程处理一个请求,然后下一个(而不是过程的结束和一个新的被催生了),那么恐怕是不可能的。 Web服务器将拦截保持活动状态,并使它们看起来像单个请求,然后您的脚本可以执行任何操作。 (如果你想这样做来提高性能,可以考虑一个不同的网关接口,如FastCGI或WSGI等特定于语言的选项。)

1

SCGI听起来完全像你想要的。它与FastCGI相似,但实现起来更简单(S表示Simple :))。