19

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

4

3 回答 3

27

SCGI 是一种连接前端 Web 服务器和 Web 应用程序的语言中立方式。WSGI 是用于 Web 应用程序的特定于 Python 的接口标准。

尽管它们都起源于 CGI,但它们的范围相当不同,您确实可以同时使用两者,例如在 web 服务器上使用 mod_scgi 与作为 SCGI 服务器运行的 WSGI 应用程序对话。有多个库实现将为您将 WSGI 应用程序作为 SCGI 服务器运行(例如 wsgitools、cherrypy)。

它们都是“可靠的”,就像您认为规范可靠而不是特定实现一样。这些天来,您可能会将您的应用程序编写为 WSGI 可调用对象,并单独考虑部署问题。

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

于 2008-11-03T00:28:52.693 回答
12

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

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

于 2009-04-22T18:21:54.887 回答
10

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

基于更好/更快/可靠,规格通常无法比较。

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

也许阅读阅读

于 2008-11-02T22:39:23.037 回答