CGI公共网关接口 Python

来源:互联网 发布:网络电影演员工资 编辑:程序博客网 时间:2024/04/28 05:36

(一)CGI定义

CGI(Common Gateway Interface)即公共网关接口,他是外部应用程序(CGI程序)和Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送到web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的交互式媒体。


CGI在物理上是一段程序,一种基于浏览器的输入,在web服务器上运行的程序,提供同客户端HTML页面的接口。CGI接口因平台不同而不同,Windows平台的CGI称为Windows CGI。


CGI可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。CGI 描述了客户端和服务器程序之间传输数据的一种标准。也可以说是一种替代永华直接访问服务器上文件而产生的一种“代理”。


(二)CGI操作流程

1> 客户表单的一个URL指向一个CGI脚本

2> 服务器接受请求,按照那个URL,寻找指向的脚本文件,并执行该脚本

3> 脚本执行基于数据访问的操作

4> 脚本产生Web服务器能够理解的输出结果

5> 服务器接受来自脚本的输出,把它传回浏览器

CGI在web服务器处理请求中的角色关系如下图:



CGI在其中扮演的是在web服务器和特定语言解释器之间输入输出的协议的角色, 每个来自用户的请求, web服务器都会唤起特定语言解释器的命令行(如Python),CGI作为一种约定来将web服务器获得的请求数据(如URL,post data)等,有选择地作为命令行参数来输入到解释器的命令行中(标准输入), 解释器根据输入构造出特定的html作为标准输出, 此时CGI又会对输出作额外的处理,如加入特定的 header(mimetype,cookie等)返回给web服务器,继而返回给用户(web服务器可能会作额外的处理).


(三)CGI实例

我们以QQ空间的留言板来看一下CGI是如何工作的:


1.先由用户在客户端输入一下信息,例如:“最近工作怎么样?”

2. 用户输入完毕,按一下“提交”

3. 浏览器把这些信息传送到服务器的CGI目录下特定的CGI程序中

4. CGI程序在服务器上按照预定的方法进行处理,在本例中就是把用户提交的信息即“最近工作怎么样?”存入特定的文件中。

5. 最后CGI程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言成功”的字样

到此,整个过程结束。