什么是CGI模式?

时间:2009-02-19 09:22:40

标签: cgi

当我们说应用程序可以在CGI模式下运行时,这意味着什么?我正在审查cmsmatrix.org上各种CMS系统的功能,并且“CGI模式支持”被列为一项功能。 Web应用程序可以运行的其他“模式”是什么?

3 个答案:

答案 0 :(得分:3)

CGI代表“通用网关接口”,它是一种用于Web应用程序的旧架构。 CGI通过放置来自HTTP请求和fork / exec()CGI过程的变量来工作。它在Web开发的早期得到了普及,因为它在unix主机上运行良好。 Perl / CGI是这个时代的流行架构,它为Perl作为一种语言的普及做出了重大贡献。

CGI声名鹊起的主要原因是它不需要太多管道,因此它适用于大多数Web服务器。主要的缺点是fork-exec进程很慢,因为必须启动CGI脚本(可能涉及启动perl或其他解释器)。在Windows上,产生一个新进程比unix慢得多,因此CGI的效率更低。

答案 1 :(得分:3)

基本上,CGI意味着网络服务器将执行外部流程,获取其结果(生成的HTML页面,图像......)并将其发送回客户端。

这有一个主要的缺点,因为它每次需要时都会启动外部进程,因此这可能是一个很大的开销。

您还有一次启动外部流程的FastCGI,并在需要时重新使用它。

但通常,语言直接集成在网络服务器中。 例如,Apache有一个mod_perl模块来执行perl脚本,而不是通过CGI执行perl脚本

答案 2 :(得分:1)

CGI是Web服务器用于调用服务器上的可执行文件的协议。收到请求后,它会将有关请求的信息发送到cgi脚本,并将该脚本的结果返回给浏览器。

替代方法是fastcgi。这意味着,Web服务器不会联系脚本来回答请求,而是一个进程。但通信协议仍然相同(因此得名)。