CGI和fastcgi协议详解

为什么需要CGI协议
    因为客户端不能理解cgi协议,web服务器充当了客户端的代理,和后端通信;web服务器通过cgi协议与后端的程序进行交互,完成动态资源调度给前端服务器。

CGI: 通用 网关接口
请求流程:

Client – (http协议) --> httpd – (cgi协议) --> application server (program file) – (mysql协议) --> mysql

    CGI使外部程序与Web服务器之间交互成为可能。CGI程序运行在独立的进程中,并对每个Web请求创建一个进程,这种方法非常容易实现,但效率很差,难以扩展。面对大量请求,进程的大量创建和消亡使操作系统性能大大下降。此外,由于地址空间无法共享,也限制了资源重用。在这里插入图片描述

fastcgi: 快速的网关接口
请求流程

Client–(http协议)–httpd–(fastcgi协议)–>fastcgi服务器–(MySQL协议)–mysql

    与为每个请求创建一个新的进程不同,FastCGI使用持续的进程来处理一连串的请求。这些进程由FastCGI服务器管理,而不是web服务器。 当进来一个请求时,web服务器把环境变量和这个页面请求通过一个socket比如FastCGI进程与web服务器(都位于本地)或者一个TCP connection(FastCGI进程在远端的server farm)传递给FastCGI进程。

CGI和Fast CGI对比

名称在Web服务器方面在对数据处理的进程方面
Cgifork一个新的进程进行处理读取参数,处理数据,然后就结束生命周期
Fastcgi用tcp方式跟远程主机上的进程或本地进程建立连接要开启tcp端口,进入循环,等待数据的到来,处理数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值