zoukankan      html  css  js  c++  java
  • CGI和FastCGI的区别

    CGIFastCGI的区别

    CGI是客户每请求一次会启动一个新的CGI解释器进程,然后执行CGI解释器进程获取返回数据,然后把返回数据返回给客户,然后结束CGI解释器进程,效率低,每起一个都会起一个进程CPU

    客户请求web服务器->启动CGI解析器->加载配置->链接其他服务器->逻辑处理->返回结果->退出

    fastCGI是在web服务器启动的时候就启动了进程,然后在客户请求的时候直接吧内容推给进程,然后返回个客户,最后是等待客户下次请求而不是说退出,与CGI不同的是他不需要单独起也不需要结束进程

    Web服务启动时启动进程(启动CGI解析器->加载配置->链接其他的服务)->客户请求web服务器->进入循环(逻辑处理+输出结果)

    一般情况下,FastCGI的整个工作流程是这样的:

      1.Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module)

            2.FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来自Web Server的连接。

            3.当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。 Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。

            4.FastCGI 子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时, 请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。

  • 相关阅读:
    IIS7.5 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面
    MVC3在IIS7.5发布(部署)报403.14错误的解决办法
    Access to the path '' is denied 解决
    log4net日志系统使用详解
    vs2012调试IIs网站
    EF框架核心--EDM设计器
    EF框架概念及三种模式
    EF简单增删改查与分页
    ServiceStack.OrmLite 学习记录6:查
    ServiceStack.OrmLite 学习记录5:改
  • 原文地址:https://www.cnblogs.com/L-moye/p/14511496.html
Copyright © 2011-2022 走看看