【问题标题】:How does a webserver interface with PHP网络服务器如何与 PHP 交互
【发布时间】:2011-10-26 18:26:03
【问题描述】:

我想在未来通过另一个网络服务器或自己编写的服务器来处理 http 请求。

我想了解如何正确地为 php 提供请求数据。

  • 应以何种形式提供请求数据
  • 如何通过标准输入或其他方式向 php 提供数据
  • php 之后如何处理接收到的请求数据,填充 $_SERVER 变量所需的任何其他操作等。

【问题讨论】:

  • 你问一个 POST 或 GET 是如何形成的?
  • 是的,如何填充 $_SERVER 数据,以及生成 html 所需的一切。任何关于此的书籍、教程、维基、文档都可以。 :)
  • @Seriousdev 我想学习 php 的深层机制并编写自己的异步 Web 服务器以供学习。
  • 所以,你想用 PHP 构建一个 HTTP 服务器。没那么容易:w3.org/Protocols/rfc2616/rfc2616.html
  • 不在 php 中。 HTTP Server 将使用低级语言编写。我只需要 php 就可以像以前一样工作,但请求由我的 http 服务器处理。

标签: php


【解决方案1】:

其实很简单。 Web 服务器通过CGI interface 与PHP 通信。这需要设置环境变量,调用 php 解释器,通过标准输入管道发送 POST 正文,然后从标准输出读取 PHP 响应。

至于 PHP 后处理 $_SERVER 变量:这是相当少的,它只构造 PHP_SELF 和 PHP_AUTH_USER 等,如手册中所述。其余部分由网络服务器提供(例如,所有 HTTP 标头都转换为 HTTP_* 环境变量)。

【讨论】:

  • 你帖子中的CGI接口链接坏了?谢谢你的好答案!我会深入研究所有链接。
【解决方案2】:

去下载 php 的源代码,然后查看 mod_php 的代码,我相信它是用 C 编写的,因为它已经完成了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    相关资源
    最近更新 更多