SCGI和WSGI之间有什么区别?

19
这两者有什么区别?哪个更好/更快/更可靠?
3个回答

27

SCGI 是一种与编程语言无关的连接前端 web 服务器和 web 应用程序的方式。WSGI 是针对 Python 的 Web 应用程序的接口标准。

虽然它们都源自于 CGI,但在范围上存在很大不同,实际上您可以合理地同时使用两者,例如让 web 服务器上的 mod_scgi 与作为 SCGI 服务器运行的 WSGI 应用程序进行通信。有多个库实现可将 WSGI 应用程序作为 SCGI 服务器运行(例如 wsgitools、cherrypy)。

它们都是“可靠的”,就规范而言,相对于特定的实现方案,规范更加可靠。现在,您可能会将应用程序编写为 WSGI 可调用函数,并将部署问题视为独立的问题。

也许 Apache+mod_wsgi(embedded) 接口可能比 Apache+mod_scgi+(SCGI wrapper lib) 快一点,但实际上这两者的差异不会太大。更有价值的是能够在各种服务器、平台和连接标准上运行应用程序。


12

SCGI(类似于FastCGI)是一种适用于Web服务器和Web应用程序之间进程间通信的(序列化)协议。

WSGI是一个Python API,连接同一进程(Python解释器)内的两个(或多个)Python WSGI兼容模块。一个模块代表Web服务器(可以是Python进程内Web服务器实现或通过例如SCGI到另一个进程中的Web服务器的网关)。另一个模块是或代表Web应用程序。此外,这两个模块之间的零个或多个模块可能作为WSGI“中间件”模块,执行诸如会话/cookie管理、内容缓存、身份验证等操作。WSGI API使用Python语言特性,如迭代/生成器和可调用对象在合作的WSGI兼容模块之间传递。


11

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

规范通常无法基于更好/更快/更可靠进行比较。

只有它们的实现可以进行比较,我相信您会找到两种规范的良好实现。

也许可以 阅读阅读


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接