如何理解CGI,PHP-CGI

要了解CGI之前,先要清楚什么时候会用到CGI

Web Service(nginx,apache)是内容的分发者,对客户端的请求就行应答。

如果只是请求静态页面index.html,那么Web Service(nginx,apache)就会去找到index.html的位置,直接返回给客户端,在这里的Web Service(nginx,apache)分发的就是静态数据;

如果请求的是动态页面index.php,那么Web Service(nginx,apache)是不能直接返回的,他会通过配置文件知道这个是动态页面,接着调用php解析器(php-fpm)进行处理;

那么Web Service(nginx,apache)和php解析器(php-fpm)之间是如何交互的呢?答案就是:CGI

什么是CGI
CGI(“通用网关接口”),是一种让Web Application(java,php等)和Web服务器程序之间进行通信(数据传输)的协议,用来规范web服务器传输到php解释器中的数据类型以及数据格式,包括URL、查询字符串、POST数据、HTTP header等,也就是为了保证web server传递过来的数据是标准格式的。

CGI程序的工作原理
1)当web server收到index.php这种类型的动态请求后,会启动对应的CGI程序(PHP的解析器);
2)PHP解析器会解析php.ini配置文件,初始化运行环境,然后处理请求,处理完成后将数据按照CGI规定的格式返回给web server然后退出进程;
3)最后web server再把结果返回给浏览器

CGI程序特点
1)高并发性能差(每一次请求都会有启动和退出的过程,每次HTTP服务器遇到动态请求时都需要重新启动脚本解析器来解析php.ini,重新载入全部DLL扩展并重初始化全部数据结构,然后把结果返回给HTTP服务器)
2)安全性差
3)CGI对php.ini敏感,调试起来很方便

什么是PHP-CGI
是 PHP 对 Web Server 提供的 CGI 协议的接口程序

PHP-CGI的特点
1)变更php.ini配置文件后需要重启PHP-CGI才能使配置生效,不能平滑重启
2)直接杀死进程php就不能运行了

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值