scgi和wsgi有什么区别?

时间:2008-11-02 22:22:26

标签: python wsgi scgi

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

3 个答案:

答案 0 :(得分:25)

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

虽然它们都有CGI的根源,但它们的范围相当不同,你可以确实合理地同时使用它们,例如在网络服务器上有一个mod_scgi与作为SCGI服务器运行的WSGI应用程序交谈。有多个库实现可以为您运行WSGI应用程序作为SCGI服务器(例如,wsgitools,cherrypy)。

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

Apache + mod_wsgi(嵌入式)接口可能比Apache + mod_scgi +(SCGI包装器lib)更快,但很可能它不会非常他们不同。更有价值的是能够在各种服务器,平台和连接标准上运行应用程序。

答案 1 :(得分:11)

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

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

答案 2 :(得分:9)

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

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

只有他们的实现具有可比性,我相信你会发现两种规范的良好实现。

可能是readread