下面的内容纯属我的学习心得,若是对于个人观点有疑问,敬请留言,我将虚心向大牛学习。web
WSGI的全称是WEB SERVICE GATEWAY INTERFACE.WSGI 不是服务器,不是API,也不是模块,而是一种协议规范,是描述web service 和web application通讯的协议规范。服务器
要实现WSGI协议,必须实现web service 和 web application ,当前运行在WSGI上的协议框架有FLASK,DJANGO,TORANDO.app
WSGI协议必须包含两部分,分别为web service 和web application这两部分,客户端与服务器的实现原理图以下所示:框架
WSGI application接收由server转发的request,处理请求,并将处理结果返回给server。application中能够包括多个栈式的中间件(middlewares),这些中间件须要同时实现server与application,学习
所以能够在WSGI服务器与WSGI应用之间起调节做用:对服务器来讲,中间件扮演应用程序,对应用程序来讲,中间件扮演服务器。server
只要web service 和web application 同时实现了WSGI的协议,那么不一样的web service 就能够和同一个web application 组合成为一个服务器,一样的不一样的web application 能够和同一个web中间件
service组合成为一个服务器。blog