WSGI是什么意思

Fanly 2019-07-10 14:54:29
问答

Web服务器网关接口(WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。

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

Python Web Server Gateway Interface

发展背景

以前,如何选择合适的 Web 应用程序框架成为困扰 Python 初学者的一个问题,这是因为,一般而言,Web 应用框架的选择将限制可用的 Web 服务器的选择,反之亦然。那时的 Python 应用程序通常是为 CGI,FastCGI,mod_python 中的一个而设计,甚至是为特定 Web 服务器的自定义的 API 接口而设计的。

WSGI(有时发音作’wiz-gee’)是作为 Web 服务器与 Web 应用程序或应用框架之间的一种低级别的接口,以提升可移植 Web 应用开发的共同点。WSGI 是基于现存的 CGI 标准而设计的。

规范概览

WSGI 区分为两个部分:一为“服务器”或“网关”,另一为“应用程序”或“应用框架”。在处理一个 WSGI 请求时,服务器会为应用程序提供环境信息及一个回调函数(Callback Function)。当应用程序完成处理请求后,透过前述的回调函数,将结果回传给服务器。

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

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

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • Tengine

    Tengine是什么

    Tengine是由淘宝网发起的Web服务器项目。在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。
  • uWSGI

    uWSGI 是什么

    uWSGI是一个“旨在开发用于构建托管服务的完整堆栈”的软件应用程序。uWSGI通常用于与Web服务器(如Cherokee和Nginx)一起提供Python Web应用程序,后者为uWSGI的本机uwsgi协议提供直接支持。
  • Nginx

    Nginx 是什么

    Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和 HTTP 缓存。 Nginx 是免费的开源软件,根据类 BSD 许可证的条款发布。
  • Gunicorn

    Gunicorn是什么

    Gunicorn(绿色独角兽)是一个用于UNIX的Python WSGI HTTP服务器。它是一个前叉工作者模型,从Ruby的Unicorn项目移植而来。 Gunicorn服务器与许多Web框架广泛兼容,轻松服务器资源并且速度相当快。
  • web2py

    web2py框架是什么

    Web2py是一个用Python编程语言编写的开源Web应用程序框架,允许Web开发人员使用Python对动态Web内容进行编程。 Web2py旨在帮助减少繁琐的Web开发任务。
  • CherryPy

    CherryPy是什么

    CherryPy是一个使用Python编程语言的面向对象的Web应用程序框架。通过包装HTTP协议来快速开发Web应用程序,但保持在较低级别,提供的内容远不及RFC 7231中定义的内容。 CherryPy本身可以是Web服务器。