了解Rails中的CGI / FastCGI

时间:2009-07-15 12:27:53

标签: cgi web-applications fastcgi

这是了解Web应用程序中的请求 - 响应机制。客户端向Web应用程序发送请求(GET / POST)。 Web应用程序运行的应用程序服务器充当应用程序特定程序的容器。当app服务器启动FastCGI / CGI进程时,我不明白该部分。 CGI有什么意义?服务器是否设计用于处理完整的请求处理机制?请求处理的哪一部分依赖于CGI?

2 个答案:

答案 0 :(得分:1)

我问了一个类似的问题(尽管它更接近于实现概念)这里的问题: HTTP request dispatch from Web Server to a CGI/FastCGI process

然而,这是我在途中学到的东西: CGI是一组“标准”,用于定义HTTP / Web服务器应如何与外部程序通信。注意标准这个词!虽然不是一个彻头彻尾的协议(如HTTP,TCP等),但它非常接近,因为大多数生成HTML(Ruby,PHP,Python等)的外部程序都遵守了这组标准。

您可以在此处阅读有关CGI的更多信息: http://hoohoo.ncsa.illinois.edu/cgi/intro.html

在这里: http://www.w3.org/CGI/

FastCGI是对CGI进程处理方式的改进 - 以超级简单的方式将FastCGI进程保持在内存中加载更长时间,以便在加载到内存中时可以处理多个请求。显然,自从时间和时间起,它的工作效率更高。加载基本CGI环境时丢失的资源永远不会发生在FastCGI进程中经常发生

稍微离开赛道和Rails具体,但这是一个有趣的艺术: http://izumi.plan99.net/blog/index.php/2007/04/05/saving-memory-in-ruby-on-rails/

答案 1 :(得分:0)

客户端(通常是浏览器)与Web服务器之间的通信超过http。 当Web服务器收到请求时,它会分析请求请求的内容,并返回适当的输出。请求可以是存储在磁盘上的文件,然后服务器只返回文件的内容。如果请求标识了一个程序(您的CGI),它将执行该程序并将您的程序输出返回给客户端。