杂谈(fastcgi)
2016-02-28 16:35
211 查看
关于cgi,fastcgi的一些问题,有些同学还是搞混,好吧,这里说一下。
1、cgi,其实是个概念,一个协议。webserver和后端程序通信的一个协议,比如要传啥内容给后端程序,用户请求的query?get?post?cookie ?.. cgi只是规定了一些内容。。
2、fastcgi,fast..顾名思义,就是更快一些,性能更高一些。怎么高法?你得了解一下传统的cgi实现,比如php,每次webserver收到请求后,请求会转移到php程序去执行,这个程序咱们一般称作php-cgi。这个解释程序一般启动都会做一些初始化工作比如解析php.ini,初始化内存池,加载so等预分配操作,以至于为后面执行php代码提供一个完整的环境,然后开始解析执行我们的php代码。整个过程中,除了php代码执行外,其他部分,每次一个请求过来,都要重复的执行,显然会很慢,因为做了很多重复的工作。而fastcgi呢,优化了这一流程,首先,有个master进程,管理多个worker进程,当master进程启动的时候,把前期执行的环境全部预备好(ini解析,初始化内存池、加载so与其他),然后同步到worker去,这样,worker就可以专心的解析并执行php代码就好。当然了,master进程做的事情还有很多…不一一说明了。。
1、cgi,其实是个概念,一个协议。webserver和后端程序通信的一个协议,比如要传啥内容给后端程序,用户请求的query?get?post?cookie ?.. cgi只是规定了一些内容。。
2、fastcgi,fast..顾名思义,就是更快一些,性能更高一些。怎么高法?你得了解一下传统的cgi实现,比如php,每次webserver收到请求后,请求会转移到php程序去执行,这个程序咱们一般称作php-cgi。这个解释程序一般启动都会做一些初始化工作比如解析php.ini,初始化内存池,加载so等预分配操作,以至于为后面执行php代码提供一个完整的环境,然后开始解析执行我们的php代码。整个过程中,除了php代码执行外,其他部分,每次一个请求过来,都要重复的执行,显然会很慢,因为做了很多重复的工作。而fastcgi呢,优化了这一流程,首先,有个master进程,管理多个worker进程,当master进程启动的时候,把前期执行的环境全部预备好(ini解析,初始化内存池、加载so与其他),然后同步到worker去,这样,worker就可以专心的解析并执行php代码就好。当然了,master进程做的事情还有很多…不一一说明了。。
相关文章推荐
- java求百分比
- 九度题目1126:打印极值点下标
- appfog下用客户端管理你的mongodb、mysql(类似)
- POJ1226 Substrings(二分+后缀数组)
- 5.UiScrollable API 详细介绍
- 实用的css3属性
- java基础笔记
- node.js实现图片验证码
- String,StringBuffer与StringBuilder的区别??
- 一起看代码来玩玩QT之12 MainWindow(menubar menu ……)
- easyui+SpringMVC添加图片
- JVM虚拟机32位和64位的探索(转发 jvm32位、64位区别 )
- hdu1542 矩阵面积并+线段树+离散化+二分+扫描线
- node.js获取RSS返回json
- CentOS6.5下使用NetHogs监控进程网络使用情况
- 二元查找树转变成排序的双向链表
- 高精度之+×÷
- angular : copy vs extend
- 如何优化网站页面提高网页的加载速度
- 一起看代码来玩玩QT之11 Dialog