来自 www.2257.com 2019-10-03 15:07 的文章
当前位置: 新萄京娱乐手机版 > www.2257.com > 正文

Common Gateway Interface

CGI(多少个商业事务) 是web服务器和表面应用程序(cgi程序)之间的接口标准,是cgi程序和web服务器之间传递消息的回程。

cgi

在情理上是一段程序,运转在服务器上,提供同顾客端HTML页面包车型客车接口。这样说大致还倒霉掌握。那么大家看一个实在例子:今后的个人主页上绝大多数都有多个留言本。留言本的办事是那般的:先由客商在客商端输入一些音信,如名字之类的东西。接着客商按一下“留言”(到方今甘休职业都在客商端),浏览器把这一个新闻传递到服务器的CGI目录下一定的cgi程序中,于是cgi程序在服务器上服从预定的章程开展拍卖。在本例中就是把顾客提交的新闻存入内定的文本中。然后cgi程序给顾客端发送多少个音讯,表示须求的天职已经终结。此时客户在浏览器里将见到“留言停止”的字样。整个经过停止。

处理步骤:

⑴通过Internet把顾客须求送到web服务器。

⑵web服务器收到客户央求并付出CGI程序管理。

⑶CGI程序把管理结果传送给web服务器。

⑷web服务器把结果送回去客户。

cgi程序是由客商的输入触发的,运转在web服务器上的顺序。CGI是在HTTP服务器下运维外界程序(或网关)的三个接口,它能让网络客商访谈远程系统上的利用项目程序,就就疑似他们在实际上利用那么些中远距离计算机一样。

cgi

干活规律:

1.浏览器通过HTML表单或超链接伸手指向三个CGI应用程序的UHighlanderL。

2.服务器收发到央求。

3.服务器执行钦命所CGI应用程序。

4.CGI应用程序实行所急需的操作,日常是基于浏览者输入的内容。

5.CGI应用程序把结果格式化为网络服务器和浏览器能够精晓的文书档案(平常是HTML网页)。

6.互联网服务器把结果回到到浏览器中。

最低水平,PHP能够做其它别的CGI程序所能做的事,举个例子搜集表格数据,生成动态页面剧情,大概收发cookies.恐怕最庞大,最有意义的风味是PHP补助大面积的多寡库.书写一个帮助数据库的Web 页面是存疑的简易。


法斯特CGI(二个共谋)

CGI 的属性瑕玷:web server 获得叁个request 后,会fork一个子进程,然后子进程实践cgi程序。这意味 要是N个央浼并发访问同一cgi 程序,那么该程序会棉被服装载入内存N次。cgi进度的再三加载变成了cgi的质量低下。

法斯特CGI 正是三个常驻型(long-live)的cgi。它的紧要表现是将cgi解释器进度保存在内部存款和储蓄器中以博得较高的品质。

办事原理:

1、Web Server运行时载入法斯特CGI进程管理器(IIS ISAPI或Apache Module)

2、法斯特CGI进度管理器本身初叶化,运营多少个CGI解释器经过(可知三个php-cgi)并等候来自Web Server的连日。

3、当客商端央浼达到Web Server时,FastCGI进程管理器选取并连接到三个CGI解释器。Web server将CGI蒙受变量和正式输入发送到法斯特CGI子进度php-cgi。

4、法斯特CGI子进程实现管理后将正式输出和错误新闻从同再三再四接重返Web Server。当法斯特CGI子进度关闭连接时,央浼便告管理完了。FastCGI子进度接着等待并管理来自法斯特CGI进度管理器(运营在Web Server中)的下一个一而再。 在CGI情势中,php-cgi在此便退出了。

在上述情形中,你能够想象CGI常常有多慢。每一种Web央求PHP都无法不另行剖判php.ini、重新载入全部恢弘视同一律开始化全体数据结构。使用法斯特CGI,全数那几个都只在进度运维时发生贰回。贰个非凡的平价是,持续数据库连接(Persistent database connection)能够干活。


PHP-CGI(实现了FastCGI的程序)

PHP-CGI是PHP自带的FastCGI管理器。

PHP-CGI的不足:

php-cgi更改php.ini配置后需重启php-cgi技巧让新的php-ini生效,不得以平滑重启。

直接杀死php-cgi进度,php就无法运转了。(PHP-FPM和Spawn-FCGI就一贯不这几个主题材料,守护进程会平滑从新兴成新的子进度。)


PHP-FPM(实现了FastCGI的程序)

PHP-FPM是二个PHP 法斯特CGI管理器,是只用于PHP的。化解了php-cgi的一部分主题素材。

PHP5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM提供了越来越好的PHP进度管理章程,能够使得调控内部存储器和进度、能够平滑重载PHP配置,比spawn-fcgi具备越来越多有一点,所以被PHP官方收音和录音了。在./configure的时候带 –enable-fpm参数就可以开启PHP-FPM

CGI格局是种种必要fork一个子历程,然后再销毁.高频度的拜谒下,频繁的fork产生额外的类别开采,限制了拍卖手艺,所以在apache下跑php平日都是内嵌模块的方法(mod_php)

话说CGI还会有一种变种FASTCGI, 为了缓和CGI的这种缺陷, 大致是上世纪90年间中叶出现了FASTCGI, 以常驻进度的方式提供CGI服务,

只是大半与此同有时间,apache有了mod_perl, mod_php等模块,质量日常比较有优势,大家都欢喜用这种方式, 所以fastcgi没及时火起来。

本文由新萄京娱乐手机版发布于www.2257.com,转载请注明出处:Common Gateway Interface

关键词: