用来为server程序和app/framework程序作链接桥梁的,使server和app/framework各自发展,任意组合python
上图是python3.4标准库里面,关于wsgiserver的实现。从图中可知,所谓wsgi的server的主要工做是运动tcp进程,解析http协议部分参数;而后交给应用程序app具体处理。nginx
因此能够理解wsgi协议,就是http server和app之间的函数接口,接口的形式是 app(enviro, start_response)web
用程序简单表示以下:apache
def make_server( host, port, app, server_class=WSGIServer, handler_class=WSGIRequestHandler ): """Create a new WSGI server listening on `host` and `port` for `app`""" server = server_class((host, port), handler_class) server.set_app(app) return server
因此,开发一个python web服务,server和python程序之间基本都会是wsgi协议。app
上面代码中,server_class部署时候基本都是apache/nginx,tcp
handler_class之类的因为基本不作具体事情,用标准库中的便可函数
app则是最关键的地方。解析请求、处理请求、回复请求都在这里。spa