CGI的“过时”性实际上只是一个因素,如果你正在做大型,复杂的网站,有很多页面浏览量。
许多人认为CGI已经过时了,他们并不真正了解CGI是什么。人们普遍认为CGI本质上是一种基于Perl的技术。许多人攻击CGI是为了消除对Perl的邪教攻击,以支持他们支持的任何语言。如果你想成为一名真正的技术专家,你需要了解基本问题,并根据情况的事实做出选择。
CGI是一个与Web服务器的接口,允许您用任何语言编写交互式页面 - 甚至是funge。当服务器收到对由 CGI 脚本控制的页面的请求时,服务器将运行该脚本并将结果返回给请求者。
如果您的编程语言在每次执行时都需要加载 VM、解释器或编译器,则每次访问页面时都需要此启动时间。
CGI加速器,如FastCGI,mod_php,mod_perl等,始终将解释器/ VM保存在内存中,可以保持库加载,甚至可以缓存脚本中的字节码以减少脚本启动开销。
如果您正在制作一个简单的,个人或业余爱好的网站,CGI就可以了。PHP也是如此。
如果您的网站需要更快的技术,则可以转向mod_perl,FastCGI或其他CGI加速技术。
您使用哪种语言应该由它提供的工具以及它们如何满足您的需求来决定。
- 列出您需要的功能。
- 列出交易破坏者名单。
- 现在,根据这两个列表检查每个可能的工具集。
- 哪一个最好?测试它。
- 它很糟糕吗?将其从列表中删除,然后返回到步骤 4。
另外,我建议不要使用befunge。仅仅因为它是可能的,并不意味着你应该使用它。
更新:正如mpeters所指出的,mod_perl,mod_php,mod_ruby等不仅仅是CGI加速器;它们提供对Apache API的访问。它们充当CGI加速器,但可以做很多事情,更多,更多的事情。
FastCGI是一个纯粹的CGI加速器。
更新 2:PHP 和 CGI 并不相互排斥。PHP可以作为CGI安装。PHP通常与FastCGI一起使用。