【问题标题】:Which C++ Library for CGI Programming?哪个 C++ 库用于 CGI 编程?
【发布时间】:2014-08-15 02:02:05
【问题描述】:

我正在考虑用一种编译语言做一些工作(为了好玩),以针对 php 运行一些简单的测试和基准测试。

基本上我想看看其他人用什么来进行 C++ CGI 编程。 (包括后端数据库,如 mysql++ 或其他)

【问题讨论】:

    标签: c++ cgi


    【解决方案1】:

    我不确定您到底在寻找什么,但有一个名为 wt(发音为“witty”)的 C++ Web 框架。它一直保持最新状态,如果您想要健壮的 C++ 服务器端代码,这可能就是您正在寻找的。​​p>

    您可以在wt homepage 上查看并阅读更多信息。

    附:如果您没有使用 *nix 或 C++ 库的经验,安装 wt 可能会遇到一些麻烦。有演练,但由于像这样的框架是少有人走的路,预计会遇到一些障碍。

    【讨论】:

    • 这看起来和我要找的几乎一模一样,但我也是一个狂热的 JavaScript 开发人员,我的第一印象(没有研究)是它试图为你做 JS。是吗?
    • 好吧,我自己没有使用过这个框架,除了测试“Hello, World”应用程序,但他们坚持认为你可以。支持“自定义 JavaScript(例如,仅用于客户端事件处理),并从此自定义 JavaScript 发出 C++ 信号。” - webtoolkit.eu/wt#/features
    • 对我来说真的很大的框架。看起来它有一个陡峭的学习曲线,或者只是糟糕的文档(他们使用 doxygen)的结果。
    【解决方案2】:

    另一个选择是 Cgicc 库,它看起来很成熟(目前是 3.x 版):

    http://www.gnu.org/software/cgicc/

    【讨论】:

      【解决方案3】:

      如果我想在那个级别上工作,我可能会直接编写一个 Apache 或 IIS 模块而不是 CGI。

      也就是说,如果您确实想使用 CGI,我建议您使用来自 Thomas Boutell 的可敬的 cgic。它是一个“普通”的 C 库,但自 90 年代中期以来一直在使用,因此它经过了彻底的测试并且坚如磐石。

      【讨论】:

      • cgic的license不好。需要署名或购买商业许可。
      • 它确实有这个要求,但恕我直言,这并不是全部那么不好 - 所需要的只是您网站的“信用”(或类似)页面上的简单注释。他们并没有要求在每一页上都有一个巨大的令人讨厌的横幅或类似的东西,哈哈! :-)
      • FastCGI 是 Apache 模块的合理替代方案。它支持C/C++。
      【解决方案4】:

      查看Boost's C++ CGI 类,这还不是 boost 的一部分

      【讨论】:

        【解决方案5】:

        简而言之,我认为通用服务器 CGI 编程不存在这种情况(当然很高兴被证明是错误的)。

        相反,您可能必须以服务器 API 为目标,例如 Apache'sThis 看起来像是对请求处理的合理介绍,这将是您所做工作的重要组成部分。

        作为替代方案,Lighttpd 可能对开发人员更加友好,并且(尤其是在您关注性能的情况下)更快。

        我注意到有一个 cpp-netlib 正在开发中,但它似乎只是 HTTP 客户端。

        【讨论】:

        • 是的,CGI 非常通用。这就是重点,标准化 Web 服务器和为服务请求而启动的子进程之间的接口。我使用 Bob Denny 的 HTTP 服务器使用 Turbo C 编写了 CGI,用于部署在运行 NCSA 的 SGI 服务器上,完全没有问题。
        • 是的,我意识到它让我听起来多么古老,谈论 Denny 的 Windows NT 服务器,以及早于 Apache 的 NCSA httpd。从我的草坪上离开! :-)
        • 我最初将 GNU Cgicc 视为 GNU,因此通常是可靠的。虽然它们确实存在,但走“直接到 api”路线也很有趣。
        • -1,这是不正确的。大多数 Web 服务器都很好地支持 Vanilla CGI。但是 CGI根本无法扩展。 FastCGI 是一个很好的替代方案,它保留了 CGI 的大部分语义,但扩展性更好。
        【解决方案6】:

        我发现使用CppCMS 开发一个Fast CGI 应用程序以部署在nginx 服务器中非常愉快——尽管它从未投入生产 =(。CppCMS 项目还包括一些用于 SQL 连接的库。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-04-12
          • 2015-02-23
          • 2012-04-18
          • 1970-01-01
          • 2017-10-17
          • 1970-01-01
          • 2011-04-14
          相关资源
          最近更新 更多