我是脚本语言的新手,我们将在9月份开始使用一些CGI脚本。我在CGI和Perl之间感到困惑。
它们是相同的,还是两种不同的语言?
答案 0 :(得分:7)
CGI不是编程语言。
CGI是Web服务器用于将HTTP请求的处理委托给为此目的执行的程序的协议。它允许动态生成的网页。
虽然Perl是一种常见的选择,但处理Web服务器请求的程序可以用任何语言编写。
答案 1 :(得分:4)
正如RFC 3875所解释的那样:
只要符合界面,CGI程序就可以用任何语言实现,编译或解释。通用网关接口(CGI)是一种简单的接口,用于以独立于平台的方式在信息服务器下运行外部程序,软件或网关。目前,支持的信息服务器是HTTP服务器。
该界面自1993年以来一直被万维网(WWW)使用。
尝试更新CGI规范,先是1.1,然后是1.2,但我相信两者都已中止。 W3C's CGI page有一些具有历史意义的链接。
答案 2 :(得分:3)
没有。 CGI不是一种语言。这仅仅是关于服务器上的Web服务器(例如Apache)和“程序”如何交互的协议。这些“程序”可以用您喜欢的任何语言编写,无论是Perl,PHP,Python,还是C / C ++。
例如,当您调用网址 http://www.example.com/cgi-bin/myscript?parm1=X&parm2=Y 时,网络服务器(Apache就此而言)执行程序“myscript”并以某种方式将参数“parm1”和“parm2”(连同它们的值X和Y)提供给该程序。这可能是环境变量或STDIN。
CGI定义了 变量(以及其他内容)如何互换以及 程序如何返回其结果。
只要Apache可以执行它,程序本身就可以用你想要的任何语言编写。
这些CGI程序通常都是脚本(而不是编译的二进制文件),因此常用术语“cgi脚本”。
答案 3 :(得分:2)
混淆的一个可能原因是,在20世纪90年代后半期,随着CGI开始变得非常流行,Perl是最常用于编写CGI程序的语言。这意味着这两个词在某些人的思想中变得密不可分。
事实上我听过有人说只有Perl才能用于编写CGI程序,并且CGI编程是Perl唯一可以用来编程的东西。这些陈述都不属实。