CGI代表公共网关接口。它是web服务器执行程序并为web浏览器生成输出的标准协议。该程序被称为CGI程序(或CGI脚本)。当用户的web浏览器请求特定的URL时,它代表web服务器执行以产生输出。
CGI在许多方面增强了网站。从对用户进行身份验证到提供全面的购物应用程序,CGIs是使web具有动态性和交互性的核心。下面是使用CGIs增强用户体验的一些主要好处。
HTML文件(以及JavaScript和CSS)由web服务器直接提供。另一方面,当请求特定的URL时,CGI程序由web服务器执行。它用于满足需要访问动态信息(例如驻留在数据库中的信息)的请求。例如,验证用户以允许访问:用户名和密码可以存储在数据库中,验证用户的请求需要访问这些信息。为了服务于这个请求,web服务器将执行一个CGI程序来查找信息并验证用户。
web服务器运行HTTP服务器软件,该软件提供了提供HTML文件以及执行CGI程序以动态生成输出的能力。HTTP服务器软件由web服务器管理员配置为在请求匹配特定模式的url时执行特定程序。
当用户的浏览器向某个特定的URL发出请求时,浏览器会以HTTP头的形式发送一大堆信息,可能还会发送HTTP正文。其中一些可能包括:
当执行一个CGI来满足这个请求时,服务器将所有这些信息传递给CGI程序。CGI可以使用这些信息的一部分或全部来处理请求并将输出个人化给用户。
CGIs的主要用途是处理HTML表单。
HTML表单是一种用户交互设备,它提供各种控件,以便用户可以提供输入。当用户单击表单上的提交按钮(或类似按钮)时,web浏览器将聚合表单中的信息并将其发送到表单中指示的目标URL。反过来,web服务器通常调用CGI程序并发送从用户收集的所有输入。这种交互称为表单POST,这是一个技术术语,表示将表单内容发送到CGI的方法。CGI处理表单内容并生成适当的响应发送到浏览器。
下面是一个用python编写的示例CGI程序。可以将其部署到web服务器,以便从类似于以下内容的URL访问:http://www.example.com/cgi-bin/env.cgi。当被调用时,CGI会报告它在其环境中从web服务器接收到的所有变量。这是一个简单的CGI程序可以得到。
#!/usr/bin/pythonimport osprint "Content-type: text/plain"for key in os.environ: print key, "=>\"", os.environ[key], "\""cgi几乎从web诞生之初就已经成为web服务器的一部分。有史以来第一个web服务器,NCSA HTTPd web服务器,最初只支持静态文件。随后,人们认识到响应URL请求执行脚本允许web服务器生成动态内容,于是CGI规范诞生了。
最早的CGI程序是用Perl、Tcl、shell等语言编写的简单脚本。它也可以用编译语言(如C/C++)编写,但这需要编译程序的附加步骤来创建可执行的CGI。
随着CGI变得更加复杂,用户需求增加,人们认识到创建一个单独的CGI进程来处理每个请求在内存和CPU开销方面过于繁重。尤其是当服务请求所花费的时间比创建新进程所花费的时间要少的时候。
此时,web服务器开始嵌入成熟的脚本解释器,以便用户请求可以在单个web服务器进程内的单独线程中处理。这提高了请求服务的效率,并缩短了响应时间。
这与专门为web设计的新语言(如PHP)的出现不谋而合。PHP解释器从CGI程序本身开始。作为请求处理的一部分,它解析请求文件中的PHP指令并执行其中的命令。
今天,除了CGI脚本之外,还有许多用于在服务器上执行代码以响应请求的技术。
您是否在公司网站的任何部分使用CGI脚本?您在部署或维护CGI脚本时遇到过任何特殊问题吗?在下面的评论中讨论。
...个无痛的安装过程和一般的易用性来推销自己,这就是为什么Bluehost是一个经常被推荐给没有技术经验的WordPress博客的托管选项。他们的****可能会更好,但服务器正常运行时间是可靠的。 ...
Perl是一种非常流行的脚本语言,用于开发各种各样的工具。它的一个众所周知的用途是基于web的CGI(公共网关接口)应用程序,它允许Perl脚本从web服务器执行。只需稍加配置,就可以在WindowsServer2008系统上配置IIS7,以便通过CGI...
Perl是一种非常流行的脚本语言,用于开发各种各样的工具。它的一个众所周知的用途是基于web的CGI(公共网关接口)应用程序,它允许Perl脚本从web服务器执行。只需稍加配置,就可以在WindowsServer2003系统上配置IIS6,以便通过CGI...
...志文件分析仍然是跟踪访问者的可靠方法,因为他们不受脚本拦截器的影响。一个广泛使用的日志文件分析工具是开源工具AWStats。 在设置AWStats之前,您需要确保在您的windowsserver2003/iis6或windowsserver2008/iis7机器上安装Perl。 配置...
...有关该问题的更多详细信息。 浏览器扩展时尚知道你看什么色情(和你的所有网页历史) 注意:脚本来自用户风格.org如果安装了Greasemonkey,也可以将其添加到Greasemonkey中。 入门 安装扩展后,您将看到第一个运行页面。您可能...
...”,这是电影中首次出现**镜头。很难说第一个**场景是什么时候让位于第一个**双人,但这种做法至少可以追溯到1934年,当时奥运会游泳运动员约瑟芬·麦基姆(Josephine McKinm)在泰山(Tarzan)和他的同伴的**水下芭蕾舞场景中替...
关键区别:PHP是一种服务器端脚本语言,主要实现在web开发中。但是,它可以用作通用编程语言。2004年7月13日,PHP5发布。它是PHP的最新版本。它由Zend Engine II提供动力。它是对PHP4的改进,包含了各种新特性。 PHP是一种服务器...
...是通过支持最新的多媒体来改进语言。PHP是一种服务器端脚本语言,主要实现在web开发中。但是,它可以用作通用编程语言。 HTML5是HTML标准的第五次修订版。HTML代表超文本标记语言。它是一种众所周知的用于开发网页的标记语...