首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php或任何cgi脚本是如何被web服务器执行的?

php或任何CGI脚本是通过以下步骤被Web服务器执行的:

  1. 客户端发起HTTP请求:当用户在浏览器中访问一个包含PHP或CGI脚本的网页时,浏览器会向Web服务器发送一个HTTP请求。
  2. Web服务器接收请求:Web服务器(如Apache、Nginx等)接收到客户端发送的HTTP请求。
  3. 解析请求:Web服务器解析HTTP请求,确定请求的目标文件是一个PHP或CGI脚本。
  4. 创建子进程:Web服务器为每个请求创建一个子进程或线程,以便并发处理多个请求。
  5. 执行脚本:子进程将PHP或CGI脚本加载到内存中,并按照特定的规则执行脚本。
  6. 处理脚本输出:执行脚本后,脚本会生成HTML或其他内容作为响应返回给Web服务器。
  7. 构建HTTP响应:Web服务器将脚本输出与其他HTTP响应头信息(如状态码、响应头部等)结合,构建HTTP响应。
  8. 返回响应给客户端:Web服务器将构建好的HTTP响应发送回客户端,客户端浏览器接收并解析响应,最终呈现给用户。

需要注意的是,PHP和CGI脚本的执行方式略有不同。对于PHP脚本,Web服务器通常会与PHP解释器(如PHP-FPM)进行交互,将脚本传递给解释器执行,并将执行结果返回给Web服务器。而对于CGI脚本,Web服务器会直接执行脚本,并将输出作为响应返回。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云服务器(CVM):提供弹性、安全、稳定的云服务器实例,支持多种操作系统和应用场景。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云云函数(SCF):无服务器计算服务,支持在云端运行代码,无需管理服务器。详情请参考:https://cloud.tencent.com/product/scf
  • 腾讯云API网关(API Gateway):提供API发布、管理和调用的服务,帮助构建和部署高性能、高可用的API。详情请参考:https://cloud.tencent.com/product/apigateway
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PHP 安全性漫谈

避免用户直接执行Apache 服务器执行程序,而造成服务器系统公开化。...在服务器文件中加入如下内容: order deny,ellow Deny from all 将禁止对文件系统缺省访问。 6、CGI脚本安全考虑 CGI本是一系列可以通过Web服务器来运行程序。...对CGI而言,最好将其限制在一个特定目录下,如cgi-bin之下,便于管理;另外应该保证CGI目录下文件是不可写,避免一些欺骗性程序驻留混迹其中;如果能够给用户提供一个安全性良好CGI程序模块作为参考...因为任何一个来访用户都可能会,也有可能无意间就禁用了客户端脚本执行,从而跳过这层验证。所以我们必须在PHP服务器端程序上检验这些数据。...另一个策略就是让 web 服务器PHP 解析不同扩展名。

1.4K70

CGI、FastCGI、PHP-CGIPHP-FPM、Spawn-FCGI 区别

CGI全称是“公共网关接口”(CommonGatewayInterface),HTTP服务器与你其它机器上程序进行“交谈”一种工具,其程序须运行在网络服务器上。...它还支持分布式运算, 即 FastCGI 程序可以在网站服务器以外主机上执行并且接受来自其它网站服务器请求。...(APIs把应用程序代码与核心web服务器链接在一起,这意味着在一个错误API应用程序可能会损坏其他应用程序核心服务器; 恶意API应用程序代码甚至可以窃取另一个应用程序核心服务器密钥...如CGI,FastCGI不依赖于任何Web服务器内部架构,因此即使服务器技术变化, FastCGI依然稳定不变。...FastCGI不足 因为是多进程,所以比CGI多线程消耗更多服务器内存,PHP-CGI解释器每进程消耗7至25兆内存,将这个数字乘以50100就是很大内存数。

1.1K10
  • 什么是CGI、FastCGI、PHP-CGIPHP-FPM、Spawn-FCGI?

    什么是CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你其它机器上程序进行“交谈”一种工具,其程序须运行在网络服务器上。...它还支持分布式运算, 即 FastCGI 程序可以在网站服务器以外主机上执行并且接受来自其它网站服务器请求。...(APIs把应用程序代码与核心web服务器链接在一起,这意味着在一个错误API应用程序可能会损坏其他应用程序核心服务器; 恶意API应用程序代码甚至可以窃取另一个应用程序核心服务器密钥...4、如CGI,FastCGI不依赖于任何Web服务器内部架构,因此即使服务器技术变化, FastCGI依然稳定不变。...FastCGI不足 因为是多进程,所以比CGI多线程消耗更多服务器内存,PHP-CGI解释器每进程消耗7至25兆内存,将这个数字乘以50100就是很大内存数。

    2.6K90

    Linux下PHP+Apache26个必知安全设置

    默认php服务器TCP/UDP端口:无 为本文所列大多数操作编写代码时,假定它们将由运行bash外壳程序其他任何现代外壳程序根用户来执行: $ php -v 示例输出: PHP 5.3.3 (cli...我注意到了几种不同类型攻击: XSS:跨站脚本是Web PHP应用程序中一种安全漏洞,攻击者可以利用该漏洞来窃取用户信息。...你必须使用ApachesuEXECmod_suPHP,以非特权用户身份来执行PHP CGI。suEXEC功能让Apache用户们能够以有别于调用Web服务器用户ID用户ID来运行CGI程序。...chown和chmod命令确保:不管在什么情况下,文件根目录文件根目录里面的文件都可以Web服务器用户apache写入。...攻击者安装它目的是,访问你服务器,同时又企图不被发现。误用PHP脚本(其他任何CGI脚本)通常允许添加钻Web浏览器中安全漏洞空子代码。

    1.4K10

    概念了解:CGI,FastCGI,PHP-CGIPHP-FPM

    CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你其它机器上程序进行“交谈”一种工具,其程序须运行在网络服务器上。...它还支持分布式运算,即 FastCGI 程序可以在网站服务器以外主机上执行并且接受来自其它网站服务器请求。...APIs把应用程序代码与核心web服务 器链接在一起,这意味着在一个错误API应用程序可能会损坏其他应用程序核心服务器。...相关模块在Apache, ISS, Lighttpd等流行服务器上也是可用。 FastCGI不依赖于任何Web服务器内部架构,因此即使服务器技术变化, FastCGI依然稳定不变。...FastCGI不足 因为是多进程,所以比CGI多线程消耗更多服务器内存,PHP-CGI解释器每进程消耗7至25兆内存,将这个数字乘以50100就是很大内存数。

    2.1K80

    php多进程单线程之php-cgiphp-fpm

    CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你其它机器上程序进行“交谈”一种工具,其程序须运行在网络服务器上(在fastcig未使用前是运行在网络服务器...APIs把应用程序代码与核心web服务器链接在一起,这意味着在一个错误API应用程序可能会损坏其他应用程序核心服务器。...相关模块在Apache, ISS, Lighttpd等流行服务器上也是可用。 FastCGI不依赖于任何Web服务器内部架构,因此即使服务器技术变化, FastCGI依然稳定不变。...但多线程和并发没有直接关系,多线程只是代码运行时在同一时间同时执行多个线程任务,来提高服务器CPU利用率,提高代码效率。...那么,当有多个客户端同时发送请求时(并发),web server会通过php-fpm为每个请求开启一个单独进程去执行php代码。 请求执行过后,空闲php-fpm进程销毁,内存得以释放。

    2.2K31

    nginx服务器究竟是怎么执行php项目

    CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你其它机器上程序进行“交谈”一种工具,其程序须运行在网络服务器上。...它还支持分布式运算,即 FastCGI 程序可以在网站服务器以外主机上执行并且接受来自其它网站服务器请求。...APIs把应用程序代码与核心web服务器链接在一起,这意味着在一个错误API应用程序可能会损坏其他应用程序核心服务器。...相关模块在Apache, ISS, Lighttpd等流行服务器上也是可用。 FastCGI不依赖于任何Web服务器内部架构,因此即使服务器技术变化, FastCGI依然稳定不变。...FastCGI不足 因为是多进程,所以比CGI多线程消耗更多服务器内存,PHP-CGI解释器每进程消耗7至25兆内存,将这个数字乘以50100就是很大内存数。

    1.4K10

    PHP-FPM 管理和配置详解

    它还支持分布式运算,即 FastCGI 程序可以在网站服务器以外主机上执行并且接受来自其它网站服务器请求。...APIs把应用程序代码与核心web服务器链接在一起,这意味着在一个错误API应用程序可能会损坏其他应用程序核心服务器。...FastCGI不依赖于任何Web服务器内部架构,因此即使服务器技术变化, FastCGI依然稳定不变; 缺点: 因为是多进程,所以比CGI多线程消耗更多服务器内存,PHP-CGI解释器每进程消耗7...Web服务器启动时,载入FastCGI进程管理器; 2. FastCGI进程管理器初始化,启动多个CGI解释器进程(PHP-CGI)并等待来自Web服务器连接; 3....当客户端请求到达Web服务器时,FastCGI进程管理器选择并连接到一个CGI解释器,Web服务器CGI环境变量和标准输入发送到FastCGI子进程PHP-CGI。 4.

    90710

    nginx服务器究竟是怎么执行php项目

    CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你其它机器上程序进行“交谈”一种工具,其程序须运行在网络服务器上。...它还支持分布式运算,即 FastCGI 程序可以在网站服务器以外主机上执行并且接受来自其它网站服务器请求。...APIs把应用程序代码与核心web服务器链接在一起,这意味着在一个错误API应用程序可能会损坏其他应用程序核心服务器。...相关模块在Apache, ISS, Lighttpd等流行服务器上也是可用。 FastCGI不依赖于任何Web服务器内部架构,因此即使服务器技术变化, FastCGI依然稳定不变。...FastCGI不足 因为是多进程,所以比CGI多线程消耗更多服务器内存,PHP-CGI解释器每进程消耗7至25兆内存,将这个数字乘以50100就是很大内存数。

    86310

    PHP」不依赖集成环境,使用Nginx手动配置Thinkphp运行环境

    php-cgi.exe:PHP解释器,为CGI提供执行工具,在web项目总会经常使用。 php-win.exe:也可以执行PHP文件,区别是会打开控制台,但不显示输出内容。...重新回到cmd中运行php-cgi,问题已解决; FastCGI 在网站整体架构中,Web Server软件(如nginx、apache、httpd等)执行是内容分发者,对客户端请求进行响应。...CGI 不是一门编程语言,其也不属于任何一门语言,但是大多数语言都提供了对CGI支持。 CGI是一种通信协议,它会把用户提交数据转换成一个k-v字典。...FastCGI FastCGI也是 Web Server 与 Web Application 之间数据交换一种协议,其是CGI 扩展版本,在执行效率上要比CGI高很多。...PHP-FPM PHP-FPM 是PHP语言对于 FastCGI 协议具体实现,他负责管理一个进程池,来处理来自Web服务器请求,不仅如此,PHP-FPM也是用于调度管理PHP解析器php-cgi管理程序

    1.6K00

    PHP 之 FastCGI 与 mod_php

    PHP处理器(PHP handlers) 首先需要记住是,任何一种Web服务器(Apache、Nginx等)都是设计成向用户发送html、图片等静态资源Web服务器自身并不能解释任何动态脚本(PHP...PHP处理器就是用来解释Web应用中PHP代码,并将它解释为HTML其他静态资源,然后将解析结果传给Web服务器,最后再由Web服务器发送给用户。...现在我们知道了,Apache与Nginx都需要PHP处理器来处理php代码,那么怎么连接上服务器php处理器呢?也就是说服务器php处理器如何通信?...CGI规范允许Web服务器执行外部程序,并将它们输出发送给Web浏览器,CGIWeb一组简单静态超媒体文档变成一个完整交互式媒体。...也就是说FastCGI是CGI升级版,一种语言无关协议,用来沟通程序(如PHP, Python,Java)和Web服务器(Apache2, Nginx), 理论上任何语言编写程序都可以通过FastCGI

    80040

    PHP 这么拉?长连接都搞不了?说说 PHP socket 编程

    年开发了 Personal Home Page 工具集合,简称为 PHPPHP 通过 CGI 协议与 Web 服务器交互,通过实时计算生成动态内容。...遵循 CGI 协议 Web 服务器一般会有一个名为 cgi-bin 目录,目录下面默认都是可执行 CGI 脚本文件,如果前端访问到了这些文件那么 Web 服务器并不会像处理普通文件那样直接将文件返回给前端...CGI 脚本标准输出会重定向给 Web 服务器服务器接到输出后返回给前端,这就是为什么早期 CGI 模式下运行 PHP 程序可以通过 echo 来返回结果原因。...PHP CGI 与 CLI 示例 下面分别列出两个例子,介绍 CGI 和 CLI 两个典型模式是如何运行。.../usr/local/bin/php-cgi 执行,$_GET 和 $_SERVER 都是 PHP 根据 CGI 协议从环境变量中解析出来,最终通过 echo 输出结果,传递给 Web 服务器

    10310

    Python Web 部署方式大全

    通俗CGI就像是一座桥,把网页和WEB服务器执行程序连接起来,它把HTML接收指令传递给服务器执行程序,再把服务器执行程序结果返还给HTML页。...CGI脚本工作流程: 浏览器通过HTML表单超链接请求指向一个CGI应用程序URL。 服务器执行务器收发到请求。所指定CGI应用程序。...这种历史已经早N年FastCGI技术所打破,FastCGI技术应用程序可以安装在服务器群中任何一台服务器,而通过 TCP/IP 协议与 Web 服务器通讯,这样做既适合开发大型分布式 Web 群...自从WSGI开发出来以后,许多其它语言中也出现了类似接口。WSGI是作为Web服务器Web应用程序应用框架之间一种低级别的接口,以提升可移植Web应用开发共同点。...只要遵照这些协议,WSGI应用(Application)都可以在任何服务器(Server)上运行, 反之亦然。WSGI就是PythonCGI包装,相对于Fastcgi是PHPCGI包装。

    1.6K40

    PHP」不依赖集成环境,使用Nginx手动配置Thinkphp运行环境

    PHP 安装配置 这里我们选择本是php 5.6,在下载php时候,会发现有不同版本可选择,如下图所示: ?...php-cgi.exe:PHP解释器,为CGI提供执行工具,在web项目总会经常使用。 php-win.exe:也可以执行PHP文件,区别是会打开控制台,但不显示输出内容。...CGI 不是一门编程语言,其也不属于任何一门语言,但是大多数语言都提供了对CGI支持。 CGI是一种通信协议,它会把用户提交数据转换成一个k-v字典。...FastCGI FastCGI也是 Web Server 与 Web Application 之间数据交换一种协议,其是CGI 扩展版本,在执行效率上要比CGI高很多。...PHP-FPM PHP-FPM 是PHP语言对于 FastCGI 协议具体实现,他负责管理一个进程池,来处理来自Web服务器请求,不仅如此,PHP-FPM也是用于调度管理PHP解析器php-cgi管理程序

    1.4K30

    服务器针对文件解析漏洞汇总

    也不是很好,欢迎大家提出意见,一起进步。 简介 文件解析漏洞,是指 Web 容器(Apache、nginx、iis 等)在解析文件时出现了漏洞,以其他格式执行出脚本格式效果。...从而,黑客可以利用该漏洞实现非法文件解析。 总结一些常见服务器WEB server)解析漏洞 ?...|t|tml)此类正则表达式,php 程序执行文件名要符合正则表达式,否则就算 Apache 把某文件当 php 程序,php 自己不认它,也是无用。...通过利用此漏洞,攻击者可以导致服务器使用 PHP FastCGI 作为 PHP 服务器执行任何公开访问文件。.../xx.asp;.jpg 原理: 服务器默认不解析;号后面的内容,因此 xx.asp;.jpg 便解析成 asp 文件了。

    2.8K00

    全面了解CGI、FastCGI、PHP-FPM

    当通过web访问php文件时,apache就会调用php5_module来解析php代码。 那么,php5_module是如何将数据传给php解析器来解析php代码呢?...设计为一个独立运行后台进程,它会建立一个处理请求子进程线程池) 所以,以上apache调用php执行过程如下: apache -> httpd -> php5_module -> sapi...CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php、perl、tcl等。 WEB服务器会传哪些数据给PHP解析器呢?...(cgi程序,你就可以理解成遵循cgi协议编写程序) 优点: CGI好处就是完全独立于任何服务器,仅仅是做为中间分子。提供接口给web服务器web应用(如提nginx和php)。...(2)由于FastCGI是多进程,所以比CGI多线程消耗更多服务器内存,php-cgi解释器每进程消耗7至25兆内存,将这个数字乘以50100就是很大内存数。

    2.8K12

    全面了解CGI、FastCGI、PHP-FPM

    当通过web访问php文件时,apache就会调用php5_module来解析php代码。 那么,php5_module是如何将数据传给php解析器来解析php代码呢?...设计为一个独立运行后台进程,它会建立一个处理请求子进程线程池) 所以,以上apache调用php执行过程如下: apache -> httpd -> php5_module -> sapi ...CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php、perl、tcl等。 WEB服务器会传哪些数据给PHP解析器呢?...(cgi程序,你就可以理解成遵循cgi协议编写程序) 优点: CGI好处就是完全独立于任何服务器,仅仅是做为中间分子。提供接口给web服务器web应用(如提nginx和php)。...(2)由于FastCGI是多进程,所以比CGI多线程消耗更多服务器内存,php-cgi解释器每进程消耗7至25兆内存,将这个数字乘以50100就是很大内存数。

    83900

    Web开发——服务器端应用技术简单比较

    它允许使用不同语言来编写适合CGI程序,该程序放在Web服务器上运行。...当客户端发出请求给服务器时,服务器根据用户请求建立一个新进程来执行指定CGI程序并将执行结果以网页形式返回给客户端浏览器上显示出来。...虽说CGI是当前应用程序基础技术,但这种技术编制比较困难,且效率低下,因为每次页面请求时,都要求服务器重新将CGI程序编写成可执行代码。...3、PHP     PHP(Hypertext Preprocessor 超文本预处理器)语法类似于C,并且混合了Perl、C++和Java一些特性,它是一种开源Web服务器脚本语言,与ASP...JSP可以预编译,从而提高了程序运行速度。另外JSP开发应用程序经过一次编译后,可以随时随地地运行,所以在大部分系统平台中,代码无需做修改就可以在支持JSP任何服务器中运行。

    2K10

    面试分享:17道Python面试题,让你在求职中无往不利

    1.Python中pass语句作用是什么? pass语句什么也不做,一般作为占位符或者创建占位程序,pass语句不会执行任何操作。 2.Python是如何进行类型转换?...CGI全称是“公共网关接口”(CommonGateway Interface),HTTP服务器与你其它机器上程序进行“交谈”一种工具,其程序须运行在网络服务器上。 ...CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。...它作用,类似于FCGI FASTCGI 之类协议作用。 WSGI 目标,是要建立一个简单普遍适用服务器WEB 框架之间接口。...Spawn-fcgi是一个小程序,这个程序作用是管理fast-cgi进程,那么管理wsgi进程也是没有问题,功能和php-fpm类似。

    61510

    什么是CGI、FastCGI、PHP-CGIPHP-FPM

    什么是CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你其它机器上程序进行“交谈”一种工具,其程序须运行在网络服务器上。...它还支持分布式运算, 即 FastCGI 程序可以在网站服务器以外主机上执行并且接受来自其它网站服务器请求。...(APIs把应用程序代码与核心web服务器链接在一起,这意味着在一个错误API应用程序可能会损坏其他应用程序核心服务器; 恶意API应用程序代码甚至可以窃取另一个应用程序核心服务器密钥...相关模块在Apache, ISS, Lighttpd等流行服务器上也是可用CGI,FastCGI不依赖于任何Web服务器内部架构,因此即使服务器技术变化, FastCGI依然稳定不变。...FastCGI不足 因为是多进程,所以比CGI多线程消耗更多服务器内存,PHP-CGI解释器每进程消耗7至25兆内存,将这个数字乘以50100就是很大内存数。

    31130
    领券