- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
14.理解CGIPHP课件必威体育精装版版概要
理解CGI
还是参数
我们之前学习过,用户对各种网页的请求都是提交给正在监听的服务器软件的,而服务器软件定位文件并不难,只要检索到文档目录中对应的文件就可以了
从
?category=soupflavour=sichuan
到
$_GET[‘category’]和$_GET[flavour]
这中间发生了什么
服务器发现用户请求的是动态网页,则会调用对应语言的解释器去解释文件,可是参数怎么传呢?服务器是如何把地址里的参数传递给解释器的?直接传过去,解释器看得懂吗?
如何传递参数?
不同国家的人,语言上是无法交流的。假设在外企,老板是德国人,他下面的员工有中国人、日本人和韩国人,你认为是应该让老板去学习中文、日文和韩文,还是让每个员工都去学习德文?
同样,服务器软件和各种编程语言之间也是无法沟通的,传递参数就好比是鸡同鸭讲
是让服务器为每种语言专门去设计接口用来传递参数,还是让服务器提供一个标准接口,让各种语言去实现该接口?
CGI
公共网关接口 Common Gateway Interface
不是语言,而是接口标准
CGI就是作为服务器的接口标准而出现的
不遵守接口标准的典型
什么叫做好的标准?
CGI标准
浏览器
服务器
请求
返回
CGI调用
CGI返回
任何能读懂CGI调用、返回CGI数据的程序
我(服务器)给你一个标准的数据,让你(解析器)来解析,烦请你(解析器)也返回一个我(服务器)能看懂的标准数据以便返回给浏览器。
CGI
通过前面的介绍,我们可以认为任何程序都可以作为CGI程序存在,只需要遵照CGI标准,能够接收并处理服务器从浏览器获取的用户请求,并且返回HTML给服务器,所以PHP是作为CGI程序来到这个世界的
CGI与CLI
PHP在Apache或者Nginx上是以CGI的方式运行的,那么,有没有其他的运行模式?最常用的就是CLI模式,我们称之为命令行模式
将php.exe添加到环境变量PATH中,在命令行里就可以直接运行php命令,譬如创建一个php文件foo.php
?phpecho date(H:i);
执行php foo.php也可以直接打印出时间(我们还可以执行php -a命令,直接进入交互式的命令行里书写代码并执行)
那么,CGI模式其实可以看作是Apache或者Nginx替我们执行了一次CLI操作
从CGI到FASTCGI
CGI有自身的缺陷,每次用户请求服务器,服务器都会启动一次CGI程序来进行解析并返回,举个不恰当的例子:
假设有兄弟姐妹四个,老大到了要上学的年龄,父母给他买了一套一年级课本,第二年老二也到了上学的年龄,父母又给她买了一套同样的课本,老三、老四也是一样。结果父母买了四套同样的课本,浪费了很多钱,有什么好的解决办法?
从CGI到FASTCGI
从CGI到FASTCGI
软件的启动、关闭需要占用大量的系统资源
CGI的运行方式有很多的弊端,一个用户请求对应一个服务器的CGI子进程,同时100个并发请求会导致服务器启动100个进程来运行。你可以想象 CGI通常有多慢。每一个Web请求PHP都必须重新解析PHP的配置、重新载入全部扩展并重初始化全部数据结构。
FASTCGI作为CGI的升级版本出现,FASTCGI会长时间保留一定数量的CGI进程一直在系统中运行,不断的去接收请求并返回数据。使用FastCGI,所有之前CGI初始化时的操作都只在进程启动时发生一次。
FASTCGI只是CGI在运行方式上的变革,和语言无关,PHP本质上还是CGI脚本
PHP-FPM
PHPFastCGI管理器
php-cgi是被调用的进程,php-fpm是配置和管理进程的
文档评论(0)