cgi web 调用多次启动_简单说明CGI和动态请求是什么

本文介绍了CGI(通用网关接口)的概念,它作为协议使得Web服务器能处理动态内容。CGI通过TCP或套接字将动态请求传递给Web应用程序。常见的HTTP请求方法有GET和POST,它们用于执行CGI脚本。文章还探讨了CGI的优化版FastCGI,以及PHP中的php-cgi和php-fpm。最后,讨论了Web服务器与CGI的三种交互模式:CGI模式、动态模块模式和php-fpm模式,其中php-fpm模式实现了动静分离,提高效率。
摘要由CSDN通过智能技术生成

1. CGI是什么

CGI是common gateway interface的缩写,大家都译作通用网关接口,但很不幸,我们无法见名知意。

我们知道,web服务器所处理的内容都是静态的,要想处理动态内容,需要依赖于web应用程序,如php、jsp、python、perl等。但是web

server如何将动态的请求传递给这些应用程序?它所依赖的就是cgi协议。没错,是协议,也就是web

server和web应用程序交流时的规范。换句话说,通过cgi协议,再结合已搭建好的web应用程序,就可以让web

server也能"处理"动态请求(或者说,当用户访问某个特定资源时,可以触发执行某个web应用程序来实现特定功能),你肯定知道处理两字为什么要加上双引号。

简单版的cgi工作方式如下:

4bf9333f81349c0c9d93bbad7eed8d81.png

例如,在谷歌搜索栏中搜索一个关键词"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

ser

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值