1

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

4

3 回答 3

3

CGI 代表“通用网关接口”,它是 Web 应用程序的旧架构。CGI 通过放置来自 HTTP 请求的变量和 fork/exec()ing CGI 进程来工作。它在 Web 开发的早期很受欢迎,因为它在 unix 主机上运行良好。Perl/CGI 在这个时代是一种流行的架构,它极大地促进了 Perl 作为一种语言的流行。

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

于 2009-02-19T09:24:49.673 回答
3

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

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

您还拥有启动外部进程一次并在需要时重用它的 FastCGI。

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

于 2009-02-19T09:31:46.070 回答
1

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

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

于 2009-02-19T09:31:07.163 回答