CGI是一个接口,它告诉Web服务器如何传递数据来回往返的应用程序。更具体地说,它描述了请求信息是如何通过在环境变量(例如请求的类型,远程IP地址),如何reqeust体通过标准输入传递,以及如何响应通过标准输出传递出来。您可以参考CGI规范的细节。
要使用您的图像:
对于页面的用户(客户端)请求--- > Web服务器--- [ CGI ] ---- >服务器端程序--- > MySQL服务器。
大多数,如果不是全部, web服务器可以被配置为执行程序作为“ CGI ” 。这意味着, Web服务器,当收到一个请求,将数据转发到一个特定的程序,设置一些环境变量,并通过标准输入和标准输出编组参数,以便程序可以知道在哪里以及如何寻找。
主要的好处是,你可以运行从网络上的任何可执行代码,因为这两个Web服务器,程序知道如何CGI的工作原理。这就是为什么你可以用C或bash web程序与普通的CGI功能的Web服务器。也就是说,和大多数编程环境可以很容易地使用标准输入,标准输出和环境变量。
你的情况你最有可能使用的另一种,具体为PHP,意味着你的脚本和Web服务器之间的通信,这一点,因为你也提到你的问题,是所谓mod_php,并且嵌入解释器。
所以,回答你的问题:
究竟什么是CGI ?
见上文。
什么大不了的/ cgi-bin目录/ * 。 CGI ?出什么事了吗?我不知道什么是服务器上的这个cgi-bin目录。我不知道他们为什么* 。 cgi的扩展。
这是传统的地方CGI程序,许多Web服务器配备了配置为执行那儿所有的程序如CGI程序这个目录前。本。 CGI扩展表示,预计工作,通过CGI可执行文件。
为什么Perl的永远是在路上。 CGI和Perl的(语言) 。我也不知道怎么了这两项。几乎所有的时间我一直在结合“的CGI和Perl的”听到这两个。这本书是用Perl另一个很好的例子CGI编程为什么不“的CGI和PHP / JSP / ASP编程” 。我从来没有见过这样的事情。
因为Perl是古(旧比PHP , JSP和ASP的都来是CGI的时候就已经老了,存在的Perl CGI的时候是新的),并成为相当著名的是一个很好的语言通过CGI来提供动态网页。现在有其他办法,以在Web服务器运行Perl ,主要mod_perl的。
C语言的CGI程序设计这混淆了我很多。 C语言?认真?我不知道该说些什么。在C I “我只是感到困惑。 ” “ ?这改变了一切。程序需要编译和执行。这完全改变了我的web编程的看法。当我编译?程序是如何被执行(因为这将是一个机器代码,所以它必须作为一个独立的进程中执行) 。它是如何与Web服务器进行通信?工控机? ,并与所有的服务器接口(在我的例子MATLAB与MySQL的使用socket编程) ?我迷路了!
编译可执行一次,网络服务器执行该程序,并在请求中的数据传递给该程序并输出接收到的响应。 CGI指定一个程序实例将每每个请求启动。这就是为什么CGI是低效和那种过时的现在。
他们说, CGI已经被废弃了。它不再使用。是那样吗?其最新的更新是什么?
CGI仍然使用时性能并不最重要和执行代码的简单方法是必需的。这是一种低效的前面提到的原因,也有在网络ENVIROMENT执行任何程序更加现代化的手段。目前最有名的是FastCGI的。