【问题标题】:Is there a speed difference between WSGI and FCGI?WSGI 和 FCGI 之间有速度差异吗?
【发布时间】:2010-12-17 08:44:24
【问题描述】:

我从网上了解到 WSGI 是用于 python web 开发/框架的 CGI。 FCGI 似乎是各种语言的更通用的网关。不知道两者在参考语言 python 和 C/++ 方面的性能差异。

【问题讨论】:

    标签: python wsgi fastcgi


    【解决方案1】:

    正确,WSGI 是 Python 编程 API 定义,而 FASTCGI 是与语言无关的套接字线协议定义。实际上,它们位于不同的层,而 WSGI 是更高的层。换句话说,可以在碰巧使用 FASTCGI 与 Web 服务器进行通信的基础上实现 WSGI,但反之则不行。

    一般来说,FASTCGI 是一种套接字线协议,这意味着您总是需要某种类型的编程接口才能使用它。对于 Python,一个这样的选项是 WSGI。由于 FASTCGI 只是达到目的的一种手段,因此在这种情况下无法真正将其性能与 WSGI 进行比较,因为 WSGI 不是一种可比较的套接字线路协议,而是 FASTCGI 本身的用户。

    可以尝试在 FASTCGI 之上比较不同语言接口的性能,但总的来说,这本身毫无意义,因为较低的网络层和服务器请求处理不是瓶颈。相反,您的应用程序代码和数据库将是。

    【讨论】:

    • 我认为询问fcgi应用响应请求和wsgi应用响应请求之间的时间差是有意义的。由于 fcgi 和 wsgi 是两种将编程语言连接到 Web 请求的不同方式,它们做的事情非常相似。
    【解决方案2】:

    它们是两种不同的东西。 WSGI 是用于编写 Web 应用程序的 Python 特定接口。几乎任何 Web 服务器协议都有包装器来提供 WSGI 接口。 FastCGI (FCGI) 就是这样的网络服务器协议之一。因此,WSGI 是一个抽象层,而 CGI / FastCGI / mod_python 是实际的 Web 服务器与应用程序对话的方式。一些代码必须将本机接口转换为 WSGI(wsgiref 中有一个 CGI 模块,FastCGI 有flup 等)。还有 mod_wsgi 用于 Apache,它直接在 Apache 模块中进行翻译,因此您不需要任何 Python 包装器。

    【讨论】:

      猜你喜欢
      • 2010-09-20
      • 2021-11-06
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      • 2019-10-02
      • 2014-04-20
      • 2010-09-13
      • 2015-09-10
      相关资源
      最近更新 更多