python中WSGI是什么

uswgi学习文档

http://uwsgi-docs-cn.readthedocs.io/zh_CN/latest/WSGIquickstart.html

WSGI是什么?

WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。自从 WSGI 被开发出来之后,许多其它语言中也出现了相似接口。html

WSGI 的官方定义是,the Python Web Server Gateway Interface。从名字就能够看出来,这东西是一个Gateway,也就是网关。网关的做用就是在协议之间进行转换。nginx

WSGI 是做为 Web 服务器与 Web 应用程序或应用框架之间的一种低级别的接口,以提高可移植 Web 应用开发的共同点。WSGI 是基于现存的 CGI 标准而设计的。web

不少框架都自带了 WSGI server ,好比 Flask,webpy,Django、CherryPy等等。固然性能都很差,自带的 web server 更多的是测试用途,发布时则使用生产环境的 WSGI server或者是联合 nginx 作 uwsgi 。服务器

  •  
    也就是说,WSGI就像是一座桥梁,一边连着web服务器,另外一边连着用户的应用。可是呢,这个桥的功能很弱,有时候还须要别的桥来帮忙才能进行处理。WSGI 的做用如图所示:

WSGI的做用

WSGI有两方:“服务器”或“网关”一方,以及“应用程序”或“应用框架”一方。服务方调用应用方,提供环境信息,以及一个回调函数(提供给应用程序用来将消息头传递给服务器方),并接收Web内容做为返回值。网络

所谓的 WSGI中间件同时实现了API的两方,所以能够在WSGI服务和WSGI应用之间起调解做用:从WSGI服务器的角度来讲,中间件扮演应用程序,而从应用程序的角度来讲,中间件扮演服务器。“中间件”组件能够执行如下功能:app

  • 重写环境变量后,根据目标URL,将请求消息路由到不一样的应用对象。
  • 容许在一个进程中同时运行多个应用程序或应用框架。
  • 负载均衡和远程处理,经过在网络上转发请求和响应消息。
  • 进行内容后处理,例如应用XSLT样式表。
相关文章
相关标签/搜索