一个web服务器如何与PHP进行接口交互

6

我希望将来能够通过另一个Web服务器或自己编写的服务器处理HTTP请求。

我想了解如何正确提供请求数据给PHP。

  • 请求数据应以什么形式提供
  • 数据是通过标准输入(stdin)还是其他方式提供给PHP的
  • PHP如何处理接收到的请求数据,是否需要执行其他操作来填充$_SERVER变量等。

1
你想知道POST或GET请求是如何形成的吗? - Matt
是的,以及如何填充 $_SERVER 数据和生成 HTML 所需的其他所有内容。任何关于此方面的书籍、教程、维基、文档都可以。 :) - Somebody
@Seriousdev 我想要深入学习PHP的机制,为了学习目的编写自己的异步Web服务器。 - Somebody
所以,你想在PHP中构建一个HTTP服务器。并不容易:http://www.w3.org/Protocols/rfc2616/rfc2616.html - seriousdev
你可能想要重新表达你的问题,比如说“Web服务器如何与PHP接口?” - deceze
显示剩余2条评论
2个回答

6
很简单。Web服务器通过CGI接口与PHP通信。这需要设置环境变量,调用php解释器,将POST正文通过stdin进行管道传输,然后从stdout读取PHP响应。 PHP对$_SERVER变量的后处理非常简单,只构造了PHP_SELF和PHP_AUTH_USER等,如手册所述。其余部分由Web服务器提供(例如将所有HTTP头转换为HTTP_* env变量)。

你的帖子中的CGI接口链接是坏的吗?感谢你的好回答!我会深入研究所有的链接。 - Somebody

0

前往下载PHP的源代码,并查看用C编写的mod_php代码,因为这是它的实现方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接