c++ - 选择什么网络服务器接口(interface)?

标签 c++ web-services interface webserver

我正在计划一个 Web 服务,它将用 C++ 编写。目标是能够或多或少地选择任何 Web 服务器来驱动服务。要实现这一点,我显然必须在 Web 服务器和应用程序之间选择一个标准化接口(interface)。

我听说过的众所周知的方法是:

  • 计算机生成
  • FastCGI
  • WSGI

现在,由于我完全没有使用这些界面的经验,所以我真的不知道该选择什么。不过,我确实有一些要求。

  • 需要相当快(据我所知,这几乎排除了 CGI)
  • 应该在纯 C/C++ 环境中易于使用(例如,应该有可用的库)
  • 必须提供对 HTTP 1.1 的支持(不知道是否重要)

感谢您的任何建议:)

最佳答案

WSGI 适用于 Python 应用;如果您的语言是 C++,则这不是一个选项。

FCGI 是一个不错的选择。 FCGI 可以作为标准 CGI 调用,方便调试和测试,然后在生产中作为 FCGI 运行。

CGI 与 FCGI 的性能在很大程度上取决于您要执行的操作以及您期望的流量。具有大量启动开销的任务从 FCGI 中获益最多; FCGI Controller 可以配置为产生额外的进程来处理重负载。

实际上,任何 Web 服务器都将以最少的配置运行 CGI;您可能需要一个额外的模块来运行 FCGI,但这取决于 Web 服务器。

http://en.wikipedia.org/wiki/FastCGI

关于c++ - 选择什么网络服务器接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2336075/

相关文章:

json - 在 Golang 中解码任意 JSON

c++ - 当我尝试使用指针的别名时 g++ 返回错误

wcf - 在多个环境中测试 Web 服务

java - 通过 Web 服务将 .NET 应用程序与 Java/J2EE 应用程序集成

reflection - 我们如何使用空接口(interface)指向的实际类型在 Go 中创建该类型的新实例?

c# - 没有返回类型协变的接口(interface)继承

C++ 二维 vector 声明

c++ - 指向指针的指针。我们能走多远?

c++ - 带有 rapidjson 的奇怪成员名称字符串

java - 从 Gradle 依赖项中排除包