CGI 定义了 Web 服务器与外部应用程序之间的通信接口标准。
因此Web服务器可以通过CGI执行外部程序,让外部程序根据Web请求内容生成动态的内容。
Perl因为跨操作系统和易于修改的特性成为CGI的主要编写语言。
当然,CGI可以用任何支持标准输入输出和环境变量的语言编写
比如Shell脚本,C/C++语言,只要符合接口标准即可。
比如你用C语言编写CGI程序,你把希望返回的HTML内容通过printf输出就可以发送给Web服务器进而返回给用户。
通用网关接口,简称CGI(Common Gateway Interface),是一种根据请求信息动态产生回应内容的技术。
通过CGI,Web 服务器可以将根据请求不同启动不同的外部程序
并将请求内容转发给该程序,在程序执行结束后,将执行结果作为回应返回给客户端
CGI应用开发比较困难,因为它要求程序员有处理参数传递的知识,这不是一种通用的技能。
CGI程序都是与操作系统平台相关,不可移植,为某一特定平台编写的CGI应用只能运行于这一环境中。
对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet 。
PHP fast-cgi(多进程模型) 、HHVM(多线程模型)
虽然在互联网爆发的初期,CGI为开发互联网应用做出了很大的贡献,但是随着技术的发展,开始逐渐衰落。