【问题标题】:FastCGI, SCGI,快速CGI、SCGI、
【发布时间】:2011-08-08 08:13:42
【问题描述】:

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

我正在查看 FastCGI 协议,它看起来烦人。它让我想起了我在课堂上将 ASCII 转换为 UTF-8 并返回时不得不做的一些小操作(当时这似乎没用,但也许不是……)

我发现了一个用 PHP 编写的很棒的库,我可以在其中启动 php-cgi -b localhost:8888 并开始与它通信。显然,我喜欢 C 语言。

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

另外,我究竟如何使用 SCGI?几乎没有任何文档(无论如何我都能找到)。我连接到什么插座?我在哪里发送请求?


另外,php-cgi 仅适用于 PHP,那么对于 Perl、Python 等如何工作?

再次感谢。

【问题讨论】:

  • FastCGI 主页上提到了一些库。 fastcgi.com/drupal/node/5 开发包应该包括服务端吧?
  • 是的,这些是用于服务器的,但我需要一个用于客户端方面的库。
  • 但是客户端实现包含在某些fastcgi.com/devkit/doc/fcgi-devel-kit.htm中。无论如何,SCGI python.ca/scgi/protocol.txt 即使没有参考代码,实现起来也非常简单。
  • SCGI 看起来很简单,但是我应该将这些标头发送到哪里呢?是否有某种服务我必须像php-cgi 一样开始?
  • SCGI 与 FastCGI 没有什么不同。每种语言都需要自己的守护进程,您可以运行多个。接受 CGI 请求几乎就是他们所做的。唯一的区别是套接字和标头格式,而不是 CGI 标准输入管道和环境变量。

标签: php c cgi fastcgi


【解决方案1】:

mario 说(在问题 cmets 中):

  • 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 请求几乎就是他们所做的。唯一的区别是套接字和标头格式,而不是 CGI 标准输入管道和环境变量。

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

【讨论】:

    猜你喜欢
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    相关资源
    最近更新 更多