什么是cgi脚本,它们如何改进网站?

CGI代表公共网关接口。它是web服务器执行程序并为web浏览器生成输出的标准协议。了解所有关于CGI脚本以及它们如何改进您的网站。...

CGI代表公共网关接口。它是web服务器执行程序并为web浏览器生成输出的标准协议。该程序被称为CGI程序(或CGI脚本)。当用户的web浏览器请求特定的URL时,它代表web服务器执行以产生输出。

cgi-scripts

CGI的好处

CGI在许多方面增强了网站。从对用户进行身份验证到提供全面的购物应用程序,CGIs是使web具有动态性和交互性的核心。下面是使用CGIs增强用户体验的一些主要好处。

  • 个性化到用户:输出可以个性化到每个用户。例如,用户可能正在检查其银行账户余额,这可能需要从数据库中检索。
  • 其他类型的个性化:用户可能正在使用**访问网站,输出需要根据**分辨率进行调整。
  • 进行更新:作为表单发布的结果执行更新(解释如下)。例如,您可能正在更新您的Facebook状态。
  • 上传文件:用户上传的文件需要服务器端的CGI来处理文件上传请求,将文件存储在特定位置。
  • 生成输出:除了在浏览器中显示输出外,许多网站还提供其他形式的输出,如Word文档、PDF等。其中一些文档可能需要由CGI动态生成,如您的电话账单或信用卡对账单。

提供静态文件与cgis

HTML文件(以及JavaScript和CSS)由web服务器直接提供。另一方面,当请求特定的URL时,CGI程序由web服务器执行。它用于满足需要访问动态信息(例如驻留在数据库中的信息)的请求。例如,验证用户以允许访问:用户名和密码可以存储在数据库中,验证用户的请求需要访问这些信息。为了服务于这个请求,web服务器将执行一个CGI程序来查找信息并验证用户。

How a CGI works.

配置web服务器

web服务器运行HTTP服务器软件,该软件提供了提供HTML文件以及执行CGI程序以动态生成输出的能力。HTTP服务器软件由web服务器管理员配置为在请求匹配特定模式的url时执行特定程序。

执行CGI

当用户的浏览器向某个特定的URL发出请求时,浏览器会以HTTP头的形式发送一大堆信息,可能还会发送HTTP正文。其中一些可能包括:

  • 浏览器类型
  • 用户名(如果用户已登录)
  • 以前由web服务器存储的任何Cookie
  • 表单变量(如果请求是POST请求)

当执行一个CGI来满足这个请求时,服务器将所有这些信息传递给CGI程序。CGI可以使用这些信息的一部分或全部来处理请求并将输出个人化给用户。

处理表格帖子

CGIs的主要用途是处理HTML表单。

HTML表单是一种用户交互设备,它提供各种控件,以便用户可以提供输入。当用户单击表单上的提交按钮(或类似按钮)时,web浏览器将聚合表单中的信息并将其发送到表单中指示的目标URL。反过来,web服务器通常调用CGI程序并发送从用户收集的所有输入。这种交互称为表单POST,这是一个技术术语,表示将表单内容发送到CGI的方法。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], "\""

cgis的演变

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脚本时遇到过任何特殊问题吗?在下面的评论中讨论。

  • 发表于 2021-03-13 08:17
  • 阅读 ( 247 )
  • 分类:编程

你可能感兴趣的文章

5最佳免费php脚本资源在线

...且希望添加新功能,那么使用其他人免费提供的代码没有什么错。它会节省你的时间和精力。 ...

  • 发布于 2021-03-16 14:36
  • 阅读 ( 312 )

7种让你的网站或博客更快地为访问者加载的方法

缓慢的页面加载速度是一个主要原因,为什么你的网站没有得到应有的点击率。 ...

  • 发布于 2021-03-22 14:24
  • 阅读 ( 229 )

9个每月成本低于3.50美元的廉价网站

...个无痛的安装过程和一般的易用性来推销自己,这就是为什么Bluehost是一个经常被推荐给没有技术经验的WordPress博客的托管选项。他们的****可能会更好,但服务器正常运行时间是可靠的。 ...

  • 发布于 2021-03-24 09:36
  • 阅读 ( 208 )

如何在WindowsServer2008的IIS7上安装perl

Perl是一种非常流行的脚本语言,用于开发各种各样的工具。它的一个众所周知的用途是基于web的CGI(公共网关接口)应用程序,它允许Perl脚本从web服务器执行。只需稍加配置,就可以在WindowsServer2008系统上配置IIS7,以便通过CGI...

  • 发布于 2021-04-13 11:16
  • 阅读 ( 156 )

如何在iis 6 for windows server 2003上安装perl

Perl是一种非常流行的脚本语言,用于开发各种各样的工具。它的一个众所周知的用途是基于web的CGI(公共网关接口)应用程序,它允许Perl脚本从web服务器执行。只需稍加配置,就可以在WindowsServer2003系统上配置IIS6,以便通过CGI...

  • 发布于 2021-04-13 11:23
  • 阅读 ( 183 )

在windows服务器和iis上设置awstats

...志文件分析仍然是跟踪访问者的可靠方法,因为他们不受脚本拦截器的影响。一个广泛使用的日志文件分析工具是开源工具AWStats。 在设置AWStats之前,您需要确保在您的windowsserver2003/iis6或windowsserver2008/iis7机器上安装Perl。 配置...

  • 发布于 2021-04-13 12:12
  • 阅读 ( 170 )

firefox用户风格入门指南

...有关该问题的更多详细信息。 浏览器扩展时尚知道你看什么色情(和你的所有网页历史) 注意:脚本来自用户风格.org如果安装了Greasemonkey,也可以将其添加到Greasemonkey中。 入门 安装扩展后,您将看到第一个运行页面。您可能...

  • 发布于 2021-04-13 16:41
  • 阅读 ( 159 )

au unnaturale:cgi裸体为何会在这里停留

...”,这是电影中首次出现**镜头。很难说第一个**场景是什么时候让位于第一个**双人,但这种做法至少可以追溯到1934年,当时奥运会游泳运动员约瑟芬·麦基姆(Josephine McKinm)在泰山(Tarzan)和他的同伴的**水下芭蕾舞场景中替...

  • 发布于 2021-05-01 00:45
  • 阅读 ( 154 )

菲律宾比索(php)和php5型(php5)的区别

关键区别:PHP是一种服务器端脚本语言,主要实现在web开发中。但是,它可以用作通用编程语言。2004年7月13日,PHP5发布。它是PHP的最新版本。它由Zend Engine II提供动力。它是对PHP4的改进,包含了各种新特性。 PHP是一种服务器...

  • 发布于 2021-07-13 06:10
  • 阅读 ( 164 )

html5(html5)和菲律宾比索(php)的区别

...是通过支持最新的多媒体来改进语言。PHP是一种服务器端脚本语言,主要实现在web开发中。但是,它可以用作通用编程语言。 HTML5是HTML标准的第五次修订版。HTML代表超文本标记语言。它是一种众所周知的用于开发网页的标记语...

  • 发布于 2021-07-13 06:21
  • 阅读 ( 169 )
willawee
willawee

0 篇文章

相关推荐