php与cgi关系

很久都没搞明白这个cgi都底是干什么的。
属于孤陋寡闻的。cgi是 (common gateway interface)通用网关接口 。cgi通俗的说就是客户端与服务器

端的一个“桥梁”,把客户端收集的信息发送到服务器端;经过服务器端的处理后,把服务器端的信息返回到

客户端。

不过cgi又必须运行在网络服务器上,又怎么解释?

cgi作为一种标准,也作为一种编程语言(错了,不是一种编程语言)。即浏览器与服务器之间的“桥梁”!即

php、jsp、asp等编程语言也是一种cgi程序。且都是遵循cgi标准的。这也就是为什么cgi都必须在网络服务

器上运行的原因了。

CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。

CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器。CGI将Web的一组简单的静态超媒体文

档变成一个完整的新的交互式媒体。

通常情况下,当web服务器接收到来自于浏览器的文件请求时,就把浏览器请求的文件发送给浏览器,并告

诉浏览器发送的文件的类型。但是,如果浏览器请求的不是一个文件,即URL指向的是一个程序(或脚本),则

Web服务器将首先执行这个程序,然后再将程序产生的输出结果像文件一样发送给浏览器。任何遵从CGI标准的、

由Web服务器执行的、能从Web服务器接收信息或发送信息给Web服务器的程序叫做CGI程序。CGI程序与所用的Web

服务器无关,在任何Web服务器上都可执行(任何特定的web服务器上都能执行)。

CGI是用来沟通HTML表单和服务器端程序的接口(interface)。说它是接口,也就是说CGI并不是一种语言,

而是可以被其他语言所应用的一个规范集。理论上讲,你可以用任何的程序语言来编写CGI程序,只要在编程

的时候符合CGI规范所定义的一些东西就可以了。由于C语言在平台无关性上表现不错(几乎在任何的系统平

台下都有其相应编译器),而且对大多数程序员而言都算得上很熟悉(不像Perl),因此,C是CGI编程的首

选语言之一。

事实上,现在的一些主流的服务器端脚本编程语言如ASP,PHP,JSP等,都基本上具备了CGI 编程的大部

分的功能,但他们在使用上的,确实是比无论用什么语言进行CGI编程都要容易的多。所以在进行服务器端编

程的时候,一般都会首先考虑使用这些脚本编程语言。只有当他们也解决不了,比如要进行一些更为底层的

编程的时候,才会用到CGI。


发表评论

电子邮件地址不会被公开。 必填项已用*标注

*