WSGI不是什么:服务器,一个Python模块,一个框架,API或者任何种类的软件。它是什么:接口规范,通过它服务器和应用通信。服务器和应用程序两端的接口都有指定。PEP3333是唯一指定这个标准的地方。如果一个应用(或者是框架、工具箱)按照WSGI规范写出来,然后它就能够运行在任何按照WSGI规范实现的服务器上。
WSGI应用(意思是兼容WSGI标准)可以被堆叠。在堆得中间的那些东西叫做中间件,并且必须在WSGI接口的两端被实现,应用端和服务器端。对于这个应用的上层应用来说,这个应用就作为一个服务器的角色,对于下层应用(或者是服务器)就是一个应用。
一个WSGI服务器(意思是兼容WSGI标准)只是从客户端接收请求,将请求传递给应用并将应用产生的应答返回给客户端。其它的事情都不做。所有的细节信息必须由应用或者中间件来提供。
不用学习WSGI明细就可以使用框架和工具箱。要使用中间件,必须了解怎样将它堆叠到应用或框架中,除非它已经与框架集成或者框架提供了某些集成的方法。
Python2.5和后来的版本自带了WSGI服务器。在2.4和以前的版本中可以被安装。