Web services web服务器如何向脚本提供数据?

Web services web服务器如何向脚本提供数据?,web-services,apache,lighttpd,Web Services,Apache,Lighttpd,我有一些php/python编程的经验,我很想知道像apache/lighthttpd这样的服务器是如何为脚本提供数据的 它是否可以绕过c/c++程序?通过这个来处理 很抱歉提出这样的问题。我太好奇了。谷歌搜索了它,但找不到真正好的答案。这些东西遵循一种请求-响应模式,即向web服务器发出请求。web服务器将处理请求并执行与请求解析到的url(通常为web服务或web页面)关联的任何服务器端代码(脚本)。脚本将执行并产生一个响应,该响应将发送回调用方。今天,可能使用最多且开销较少的是SAPI:

我有一些php/python编程的经验,我很想知道像apache/lighthttpd这样的服务器是如何为脚本提供数据的

它是否可以绕过c/c++程序?通过这个来处理


很抱歉提出这样的问题。我太好奇了。谷歌搜索了它,但找不到真正好的答案。

这些东西遵循一种请求-响应模式,即向web服务器发出请求。web服务器将处理请求并执行与请求解析到的url(通常为web服务或web页面)关联的任何服务器端代码(脚本)。脚本将执行并产生一个响应,该响应将发送回调用方。

今天,可能使用最多且开销较少的是SAPI:

SAPI的一些示例是ISAPI,主要用于IIS,Apache模块用于Apache, 这个列表还包括服务器

  • ISAPI: 使用系统动态链接库(DLL),使其“附加”到Web服务器和函数 可以直接调用它。

  • CGI: 通常为每个请求创建一个新进程,来自服务器的数据通常以stdin形式传递,程序写入stdout,一些信息作为环境变量传递

  • FastCGI: 顾名思义,它类似于CGI,但不需要每次发出请求时都运行程序,速度更快,使用的资源更少

  • Xitami也有自己的,称为LRWP

但每台服务器都可以实现自己的功能

注意:解析脚本的是模块或外部程序。SAPI、CGI、FastCGI以及任何与脚本解释器(二进制)集成的东西。然后解释器接收请求路径,找到脚本文件并解析它。
例如:PHP有它的apache和IIS模块。

我知道基本原理。我想知道apache向脚本抛出了什么输出,以及如何通过c/c++查找CGI、SCGI和FCGI将它们链接起来。它们是几种最常见的接口。SCGI和FCGI是打包数据的两种不同方式,因此可以通过套接字将数据发送到已经运行的脚本。web服务器作为客户端连接到脚本,脚本接受连接。然后,脚本服务于请求并写回结果,例如和HTML页面,然后web服务器将其转发给客户端。