php的结构很像是网络服务器接收到一个请求,然后调用php这个程序处理php的脚本,和cgi的性质一样,但是为什么,很多人都把cgi作为一个过时的技术,或者说,将php视作与cgi截然不同的一种结构呢?
他们之间是不是真的有什么本质上的区别呢?
回复内容:
额,首先CGI是外部应用程序与Web服务器之间的接口标准,不同类型语言写的程序只要符合cgi标准,就能作为一个cgi程序与web服务器交互,早期的cgi大多都是c或c++。php可以作为一个cgi使用,作为cgi时,它将作为独立的进程运行,有请求过来就创建一个进程进行响应。当php作为apache的一个模块时,php将作为apache的一个子进程存在,接受apache调用。现在也有了php-fpm+nginx的组合,php-fpm是一个fast-cgi管理器,负责将接收到的请求分配给预先生成的php子程序,管理着php进程。
PHP(Hypertext Preprocessor,超文本预处理器)是一门编程语言,主要用于服务器端的动态页面生成和数据库操作,CGI是它的诸多应用之一。
CGI(Common Gateway Interface,通用网关接口)是一种常见的技术,比如我在回答这个问题,点击“提交”之后,这段文本便被浏览器传递到知乎的服务器CGI程序,经过处理之后,别人再打开这个页面就能看到我的回答了。
CGI在服务器端可以用很多语言实现,比如PHP、Python、C/C++、JAVA等等等等。
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn