CGI如何识别编译器?

时间:2012-02-07 03:38:07

标签: javascript cgi wsgi

对于这里的大多数开明人士来说,这个问题看起来真的很愚蠢。但请相信我,我问这个是因为我无法通过正常的谷歌搜索找到答案,因此在这里求助。我知道CGI是语言无关的。由于我不在Web开发中,我只是想知道如果我们有多个cgi脚本,其中一个可能是python脚本而其他可能是C等等,web-server如何知道要查找哪个编译器?等等? / p>

2 个答案:

答案 0 :(得分:2)

CGI脚本由操作系统运行。

Web服务器通常认为文件是CGI脚本,如果它位于某个目录(通常名为cgi-bin)并且设置了可执行位。

如果Web服务器认为该文件是CGI脚本,它fork,设置一些环境变量和其他小东西,然后要求操作系统执行它。

操作系统看到它是否可以直接执行它,如果可以,那么它就可以执行。否则,它会查找hashbang并使用它来执行脚本。

答案 1 :(得分:1)

CGI中没有任何内容。每个Web服务器都以不同方式执行例如,Apache有一整个configuration language,用于指定如何处理,过滤和路由到处理程序的请求。相比之下,python simple HTTP server没有CGI脚本的概念,只是调用python对象上的方法来处理请求。

编辑:

CGI通常意味着RFC 3875。该文档从不要求Web服务器将本地文件系统上的文件与URL相关联。

最接近谈论脚本的位是

  

<强> 3.4。执行

     

以系统定义的方式调用脚本。

基本上允许服务器委托脚本,如果他们喜欢或做任何他们喜欢的服务请求。