2008-11-02 112 views

回答

23

SCGI是连接前端Web服务器和Web应用程序的语言中立手段。 WSGI是针对Web应用程序的Python特定接口标准。

尽管它们都有CGI的根源,但它们的范围很不一样,你可以确实很合理地同时使用它们,例如在web服务器上有一个mod_scgi与一个作为SCGI服务器运行的WSGI应用程序对话。有多个库实现可以将WSGI应用程序作为SCGI服务器运行(例如,wsgitools,cherrypy)。

它们都是'可靠的',尽可能多地考虑可靠的规格而不是特定的实现。现在您可能会将您的应用程序编写为可调用的WSGI,并分别考虑部署问题。

也许一个Apache + mod_wsgi的(嵌入式)接口可能是比一个Apache + mod_scgi +(SCGI包装LIB)快,但在所有的可能性,它不会是巨大不同。更有价值的是能够在各种服务器,平台和连接标准上运行应用程序。

7

它们都是将Web应用程序插入Web服务器的规范。一个明显的区别是WSGI来自Python世界,我相信没有非python实现。

基于更好/更快/可靠的规格通常不具有可比性。

只有它们的实现是可比的,我相信你会发现这两个规范的很好的实现。

也许readread

9

SCGI(如FastCGI的)是适合于web服务器和web应用之间的进程间通信的(串行化)协议。

WSGI是一个Python API,连接两个(或更多)相同的处理(Python解释)的内部的Python WSGI兼容模块。一个模块代表网络服务器(或者是一个Python进程中的网络服务器实现,或者是通过例如SCGI在另一个进程中连接到网络服务器的网关)。另一个模块是或代表Web应用程序。此外,之间零个或多个模块论文两个模块,可以作为WSGI“中间件”模块,做这样的事情会话/ cookie管理,内容缓存,认证等WSGI API使用Python语言功能,如迭代/发电机和可调用的传递协作WSGI兼容模块之间的对象。

+0

完美答案。 – DejanLekic 2015-11-25 10:32:05