CGI概念
CGI实际上是一种接口规范(协议),按照此规范开发的程序均可称为CGI程序。
通过CGI协议,web server可以将动态请求和相关参数发送给专门处理动态内容的应用程序。
CGI是web server和web应用程序交流的规范。
例如,在谷歌搜索栏中搜索一个关键词”http”,对应的URL为:
https://www.google.com/search?q=http&oq=http&aqs=chrome..69i57j69i60l4j0.1136j0j8&sourceid=chrome&ie=UTF-8当谷歌的web server收到该请求后,先分析该url,从中知道了要执行search程序,并且还知道了一系列要传递给search的参数及其对应的value。
web server会将这些程序参数和其它一些环境变量根据cgi协议通过TCP或套接字等方式传递给已启动的cgi程序(可能是cgi进程,或者是已加载的模块cgi模块)。
当cgi进程接收到web server的请求后,调用search程序并执行,同时还会传递参数给search程序。search执行结束后,cgi进程/线程将处理结果返回给web server,web server再返回给浏览器。