php的运行原理,浅析web server和PHP的通信

PHP运行原理

外部请求来到web server(nginx/apache/IIS),web服务器判断请求是静态页面是PHP请求,如果是静态页面,直接根据路径拿到html文件,返回给前端;如果是PHP请求,就需要把这个请求交给PHP处理。问题来了,web server 如何把这个请求交给php呢?我们需要定义一种通信协议,是的两者之间可以通信。这个通信协议就是CGI。

CGI

定义:公共网管。是web server与编程语言(php,python等)的通信协议。
缺点:一个CGI进程只能处理一个请求,当请求过多时,会消耗巨大的资源和内存。

PHP-CGI

定义:是PHP自带的web server与php的通信协议。有着和CGI同样的缺点。

Fast-CGI

定义:可以理解为一个cgi的进程管理器。
特点:常驻内存,支持分布式运算。
工作原理:Fast-CGI启动,自身初始化,并同时启动多个cgi子进程。当请求到达web server时,web server将cgi的环境配置和标准输入给Fast-CGI的子进程(这样的机制就表明Fast-CGI可以平滑启动,无需重启服务),当请求处理完成后,子进程告知Fast-CGI,自身进入等待状态,等待主进程的下一次调遣。
缺点:相对于多线程的CGI,会消耗更大的服务器内存。

PHP-FPM

定义:是PHP自带的Fast-cgi进程管理器,拥有Fast-cgi的一切特点和缺点,只能处理php请求而已。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值