cgi与fastcgi的区别

cgi

概念: CGI(Common Gateway Interface)全称是“通用网关接口”
是 Web Server 与 Web Application 之间数据交换的一种协议

工作的原理:

每当客户请求CGI的时候,WEB服务器就请求操作系统生成一个(fork)新的CGI解释器进程(如php-cgi.exe),当CGI满足要求后,WEB服务器就杀死这个进程

fastcgi

概念:fastCGI是用来提高CGI程序性能的。类似于CGI,FastCGI也可以说是一种协议

工作原理:

  1. Web Server 启动时载入FastCGI进程管理器
  2. FastCGI进程管理器自身初始化,启动多个CGI解释器进程 (在任务管理器中可见多个php-cgi.exe)并等待来自Web Server的连接。启动php-cgi FastCGI进程时,可以配置以TCP和UNIX套接字(socket)两种方式启动
  3. 当客户端请求到达Web Server时,Web Server将请求采用TCP协议或socket方式转发到FastCGI主进程,FastCGI主进程选择并连接到一个CGI解释器(子进程php-cgi.exe)。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi.exe。
  4. FastCGI子进程php-cgi.ex完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在 WebServer中)的下一个连接。 而在CGI中,php-cgi子进程在此便被退出了

cgi与fastcgi的区别在于

在web服务器方面对数据进行处理的进程方面
cgifork一个新的进程进行处理读取参数,处理数据,结束进程
fastcgi用tcp方式跟远程机子上的进程或者本地进程进行连连接要开启tcp端口,进入循环,等待数据的到来,处理数据

fastcgi的优点

相较于cgi,fastcgi对于php脚本运行速度更快,php解释程序被载入内存而不是每次需要时从存储器读取,极大提升了依靠脚本运行站点的性能.
需要使用的系统资源更少,由于服务器不用在每次需要时都载入php解释程序,你可以将站点的传输速度提升很多而不必增加cpu负担
从性能上看,FastCGI把动态逻辑的处理从Server中分离出来,大负荷的IO处理还是留给宿主Server,这样宿主Server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分,大量的是图片等静态

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值