我正在用C编写Web服务器,我需要找出一种使用CGI在服务器端执行动态内容的方法。

我正在查看FastCGI协议(protocol),它看起来很烦人。这让我想起了我在将ASCII转换为UTF-8并返回时在类中要做的一些事情(那时似乎没用,但也许不是。)

我找到了一个用PHP编写的出色库,可以在其中启动php-cgi -b localhost:8888并开始与其进行通信。显然,我希望在C语言中能做到这一点。

如果有人可以找到一个库(对于FastCGI客户端!),我将不胜感激。如果没有,那么我可以通过编写一个为开源社区做出贡献。

另外,我究竟该如何使用SCGI?几乎没有任何文档(无论如何我都可以找到)。我要连接到哪个 socket ?我应该在哪里发送请求?

另外,php-cgi仅适用于PHP,那么它如何适用于Perl,Python等?

再次感谢。

最佳答案

马里奥说(在问题评论中):

  • 在FastCGI主页上提到了一些库。 http://fastcgi.com/drupal/node/5。开发套件应包括服务器。
  • 客户端实现也包括在其中。 http://fastcgi.com/devkit/doc/fcgi-devel-kit.htm
  • 即使没有引用代码,SCGI http://python.ca/scgi/protocol.txt的实现也非常简单。
  • 您需要一个以守护进程身份运行的SCGI客户端,该客户端需要在一个约定的端口(4000或5000个常见端口)上接受套接字连接。
  • SCGI与FastCGI没什么不同。每种语言都需要自己的守护程序,您可以运行多个守护程序。接受CGI请求几乎就是他们所做的。唯一的区别是套接字和 header 格式,而不是CGI stdin管道和env变量。

  • 为此,我想补充一点:CGI(正是这个问题所要的)在其工作模型上与FCGI和SCGI不同。一个人误认为另一个人是很容易的。幸运的是,Preetam似乎要求提供FCGI和SCGI。

    关于php - FastCGI,SCGI,,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5711140/

    10-12 02:08