首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python - WSGI 和 ASGI 服务器

WSGI wiki 上的解释 Web Server Gateway Interface Web 服务器网关接口 是为 Python 定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口...WSGI 的问题 随着移动网络的发展,Web 技术也在升级,比如 WebSocket、HTTP/2,HTTP/3 WSGI 应用是一个单调用、同步接口,即输入一个请求,返回一个响应;这个模式无法支持长连接或者...,这意味着现在能够开始构建可在所有异步框架中使用的通用工具集 ASGI Asynchronous Server Gateway Interface 异步服务器网关接口 ASGI 是 WSGI 的继承者,...旨在提供支持异步的 Python web 服务器、框架和应用程序之间的标准接口 ASGI 为异步和同步应用程序提供了一个标准,继续成为 web 服务器、框架和应用程序(如异步 python 中的 WSGI...是对 WSGI 的扩展

74620
您找到你想要的搜索结果了吗?
是的
没有找到

所谓 WSGI

from PEP 3333 从 PEP 3333 的这段总结来看,WSGI 就是一个 Python 官方建议用在 Web 服务器和 Python Web 应用框架之间的标准接口。...何为 Web 服务器 首先,什么是服务器(server)?...为了解决这一现象 Python 社区提交了 PEP 333,正式提出了 WSGI 这个概念。 简单的理解:只要是兼容 WSGI 的 Web 服务器和 Web 框架就能配套使用。...开发服务器的程序员只需要考虑在兼容 WSGI 的情况下如何更好的提升服务器程序的性能;开发框架的程序员只需要考虑在兼容 WSGI 的情况下如何适应尽可能多业务开发逻辑(以上只是举例并非真的这样)。...上面已经提到,WSGI 通过规范化 Web 框架和 Web 服务器之间的接口,让兼容了 WSGI 的框架和服务器能够自由组合使用…… 所以,WSGI 究竟做了什么,让一切变得如此简单?

48020

wsgi 协议

wsgi 协议 前言 本来没打算这么早就学习 wsgi 的,因为想要学习python 是如何处理网络请求的绕不开 wsgi,所以只好先学习一下 wsgi。...所以对客户端来说,中间件扮演服务器;对服务器来说,中间件扮演客户端。在 Django 中wsgi 收到的数据用 request对象表示,要传给客户端的数据用 Httpresponse对象表示。...= urls[route]() # 返回二进制响应体 return [data] if __name__ == '__main__': # 创建服务器对象...经过 make_server就成功开启了wsgi server,然后server_forever()是为了将服务器持续接收客户端请求,采用的是轮询方法,该方法里面的参数 poll_interval=0.5...所以对客户端来说,中间件扮演服务器;对服务器来说,中间件扮演客户端。在 Django 中wsgi 收到的数据用 request对象表示,要传给客户端的数据用 Httpresponse对象表示。

80720

浅谈 WSGI

WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。...自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。 正如定义,WSGI 不是服务器,不是 API,不是 Python 模块,而是一种规定服务器和客户端交互的 接口规范。...WSGI 目标是在 Web 服务器和 Web 框架层之间提供一个通用的 API 标准,减少之间的互操作性并形成统一的调用方式。...根据这个定义,满足 WSGI 的 Web 服务器会将两个固定参数传入 WSGI APP:环境变量字典和一个初始化 Response 的可调用对象。...WSGI 服务器WSGI APP 的写法上就基本能推测出 WSGI 服务器做了什么,因此可以尝试实现一个简陋的 WSGI 服务器: def run_wsgi_app(app, environ):

43520

WSGI解惑

WSGI简介 WSGI(Web Server Gateway Interface, Web服务器网关接口)是Python中定义的一个网关协议,规定了Web 服务器如何跟应用程序交互。...Web服务器可以理解为一个Web应用的容器,通过它可以启动应用,进而提供HTTP 服务。只要应用程序是基于WSGI协议设计的,那么它就可以运行在任何实现了WSGI协议的Web服务器上。...WSGI允许开发者将选择Web框架和选择Web服务器进行分离,这就是使用统一的协议的好处。 WSGI原理 WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。...body,该函数调用完毕 4.Web服务器组装head和body后给浏览器返回响应 WSGI实战 Python内置了一个WSGI服务器,这个模块叫wsgiref,它是用纯Python编写的WSGI服务器...该服务器完全符合WSGI标准,但是不考虑任何运行效率,仅供开发和测试使用。

39010

flask wsgi部署

前言 flask自带的开发Web服务器表现很差,响应慢,而且直接通过nginx进行反向代理,经常无法响应请求。...有两个可以在生产环境中使用、性能良好且支持Flask程序的服务器,分别是Gunicorn和uWSGI,但是这两个模块不提供对window的支持。...因此我们需要使用mod_wsgi这个模块使得flask能够在apache上进行部署,mod_wsgi模块是一个python写的Apache的FastCGI模块。...mod_wsgi模块: 说明:参考链接的大神使用的.so模块是需要通过访问外国网站得到,所以我们需要使用whl文件,mod_wsgi的版本选择是非常有讲究的,它需要对应apache对应的vc编译版本...下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi 选择的版本:mod_wsgi‑4.6.4+ap24vc14‑cp36‑cp36m‑win_amd64

1.2K30

wsgi和asgi

wsgi和asgi wsgi和asgi都是Web服务器网关接口。它们是一种规范,描述了Web服务器如何与Web应用程序(客户端)通信,以及如何将Web应用程序链接在一起以处理一个请求。...WSGI Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口...application中可以包括多个栈式的中间件(middlewares),这些中间件需要同时实现server与application,因此可以在WSGI服务器WSGI应用之间起调节作用:对服务器来说...wsgi的出现是因为web框架会限制用户对可用web服务器的选择,而人们希望设计出一个Web服务器和Web应用程序之前的简单通用接口。...WSGI ASGI ASGI是WSGI的精神继承者,WSGI是用于Web服务器、框架和应用程序之间兼容性的长期存在的Python标准。

1.1K20

Python 17.3 WSGI接口

WSGI接口 了解了HTTP协议和HTML文档,我们其实就明白了一个Web应用的本质就是: 1、浏览器发送一个HTTP请求; 2、服务器收到请求,生成一个HTML文档; 3、服务器把HTML文档作为HTTP...所以,application必须由WSGI服务器来调用。有很多符合WSGI规范的服务器,我们可以挑选一个来用。...但是我们只想尽快测试下我们编写的application()函数真的可以把HTML输出到浏览器,所以要赶紧找一个最简单的WSGI服务器,把我们的Web程序跑起来。...好消息是Python内置了一个WSGI服务器,这个模块叫wsgiref,它是用纯python编写的WSGI服务器的参考实现。...'] 然后在编写一个server.py,负责启动WSGI服务器,加载application()函数: from wsgiref.simple_server import make_server

58810

python web开发 网络编程 HTTP协议、Web服务器WSGI接口

WSGI 接口 4.1 CGI 通用网关接口 4.2 WSGI 4.3 定义 WSGI 接口 4.4 运行 WSGI 服务 learning from 《python web开发从入门到精通》 1....WSGI 接口 上面实现了一个静态服务器,但是现在很少使用,更多的是使用 动态页面,实现交互性 例如,注册登录网站,用户输入数据,web服务器不处理用户数据(不是它的职责),CGI 诞生 4.1 CGI...WSGI 在 FastCGI 标准下写异步的 Web 服务不太方便,WSGI (Web Server Gateway Interface 服务器网关接口) 出现 下图 from https://www.cnblogs.com...web 解析 和 应用程序逻辑 分离,可以各自做自己擅长的事 python 内置了 WSGI:wsgiref 模块(它没有考虑运行效率,仅供开发测试) 4.4 运行 WSGI 服务 wsgi_app.py...# WSGI 服务器 from wsgiref.simple_server import make_server from wsgi_app import app # 创建一个服务器,IP地址为空,

1K10

WSGI到底是什么?

具体可查看 官方文档 从以上介绍我们可以看出: WSGI是一套接口标准协议/规范; 通信(作用)区间是Web服务器和Python Web应用程序之间; 目的是制定标准,以保证不同Web服务器可以和不同的...试想一下,如果不统一标准的话,就会存在Web框架和Web服务器数据无法匹配的情况,那么开发就会受到限制,这显然不合理的。 既然定义了标准,那么WSGI的标准或规范是?...web服务器在将请求转交给web应用程序之前,需要先将http报文转换为WSGI规定的格式。...接下来,我们需要一个服务器启动WSGI服务器用来处理验证,使用Python内置的WSGI服务器模块wsgiref,编写server.py: # coding:utf-8 """ desc: WSGI服务器实现...)方法,该方法完成了请求和响应的处理,WSGI服务器通过调用该方法传入请求数据,获取返回数据: def wsgi_app(self, environ, start_response): ctx

1K20

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券