2009-11-17 84 views
30

从网上我收集了WSGI是一个用于python web开发/框架的CGI。 FCGI似乎是各种语言的更普遍的网关。不知道这两者在引用Python和C/++语言时的性能差异。WSGI和FCGI之间有速度差吗?

回答

67

正确,WSGI是一个Python程序化API定义,FASTCGI是一种语言无关的套接字线协议定义。有效地,它们处于不同的层次,WSGI是更高层。换句话说,可以在使用FASTCGI与Web服务器进行通信的情况下实现WSGI,但不能以其他方式实现。

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

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

+1

我认为询问响应请求的fcgi应用程序与响应请求的wsgi应用程序之间的时差是有意义的。由于fcgi和wsgi是将编程语言连接到Web请求的两种不同方式,因此它们做的事情非常相似。 – Ninjaxor 2016-07-03 23:34:42

20

他们是两回事。 WSGI是编写Web应用程序的Python专用接口。有关于任何Web服务器协议来提供WSGI接口的包装器。 FastGCI(FCGI)就是这样的Web服务器协议之一。所以,WSGI是一个抽象层,而CGI/FastCGI/mod_python是实际Web服务器与应用程序交谈的方式。某些代码必须将本机接口转换为WSGI(在wsgiref中有一个CGI模块,FastCGI有flup等)。还有Apache的mod_wsgi,它直接在Apache模块中进行翻译,所以你不需要任何Python包装器。

相关问题