什么是ASGI?Uvicorn?

什么是ASGI

异步网关协议接口,一个介于网络协议服务和Python应用之间的标准接口,能够处理多种通用的协议类型,包括HTTP,HTTP2和WebSocket。
然而目前的常用的WSGI主要是针对HTTP风格的请求响应模型做的设计,并且越来越多的不遵循这种模式的协议逐渐成为Web变成的标准之一,例如WebSocket。
ASGI尝试保持在一个简单的应用接口的前提下,提供允许数据能够在任意的时候、被任意应用进程发送和接受的抽象。并且同样描述了一个新的,兼容HTTP请求响应以及WebSocket数据帧的序列格式。允许这些协议能通过网络或本地socket进行传输,以及让不同的协议被分配到不同的进程中。

WSGI和ASGI的区别在哪

WSGI是基于HTTP协议模式的,不支持WebSocket,而ASGI的诞生则是为了解决Python常用的WSGI不支持当前Web开发中的一些新的协议标准。同时,ASGI对于WSGI原有的模式的支持和WebSocket的扩展,即ASGI是WSGI的扩展。

Uvicorn 是一个闪电般快速的ASGI服务器,基于uvloop和httptools构建。

直到最近,Python还没有为asyncio框架提供最小的低级服务器/应用程序接口。 ASGI规范填补了这一空白,意味着我们现在能够开始构建一个可用于所有asyncio框架的通用工具集。

ASGI帮助实现一个Python Web框架生态系统,该框架在与IO绑定的上下文中实现高吞吐量方面与Node和Go竞争非常激烈。 它还提供对HTTP / 2和WebSockets的支持,WSGI无法处理。

Uvicorn目前支持HTTP/1.1和WebSockets。 计划支持HTTP/2。

你可能感兴趣的:(什么是ASGI?Uvicorn?)