cgi死了吗?

fly*_*ire 17 apache cgi

好吧,让我们更温和地说:cgi(通用网关接口)是遗产吗?

是?没有?

在什么情况下,从今天开始的项目(一个不需要与遗留系统或库交互的项目)使用cgi?

int*_*tgr 12

实际上远非死亡.尽管存在开销,但许多虚拟Web托管公司现在都将PHP作为CGI运行以考虑安全性,因为它可以与suEXEC一起使用.suEXEC表示您的脚本在您的实际Unix用户权限下执行,因此受操作系统权限分离的限制.这是一个很多比PHP特定的open_basedir替代更可靠的安全模式.

此外,CGI是一个非常简单且功能多样的界面,对它的支持永远不会从Web服务器出来.许多较新的接口(如FastCGI和SCGI)继承了CGI将HTTP标头和其他变量传递给Web应用程序并返回的方式.甚至PHP的SAPI也用它的$_SERVER变量来模仿它.所以CGI不会消失,它只是建立在它之上.

  • 同样可以通过suexec运行FastCGI,或者通过完全在Web服务器外部运行的进程管理器,并且内置了对FastCGI的支持.但我不会看共享主机作为未来的指标.:) (2认同)

hob*_*bbs 9

遗产?绝对.死?嗯,这是生命支持.我怀疑它在可预见的未来真的会"死".如果您的服务器没有其他运行Web应用程序的方法并且您懒得配置它,您仍然可以使用CGI编写一个非常小的脚本.

还有什么原因?也许你有一个程序泄漏内存或资源像筛子,但你还是需要运行它,所以你确保通过结束每个请求的过程清理一切...

但严重的是,对于真正重要的事情,我认为使用持久化流程迁移到任何类型系统的好处都会大大超过成本.根据我的经验,它鼓励编写组织更好的代码,因为在CGI环境中,需要具有良好模块化应用程序的初始化转换为"不可接受的启动时间".