ASGI(Asynchronous Server Gateway Interface) 是 Python Web 服务的一种标准接口协议,它支持异步和高并发,是 WSGI 的升级版。
而所谓的 “ASGI 服务器”(比如 uvicorn
、daphne
)就是用来运行遵循 ASGI 标准的 Python Web 应用的服务程序。
只要你的“插头”是符合 ASGI 标准的,uvicorn
就能让它跑起来,接受请求、返回响应。
在 ASGI 出现之前,Python Web 服务用的是:
WSGI(Web Server Gateway Interface)
常见的 WSGI 框架:
常见的 WSGI 服务器:
gunicorn
uwsgi
所以如果你要搞:
就必须用 ASGI。
特性 | WSGI | ASGI |
---|---|---|
同步支持 | ✅ | ✅ |
异步支持 | ❌ | ✅ |
WebSocket | ❌ | ✅ |
长连接/推送 | ❌ | ✅ |
性能 | 一般 | 更高 |
FastAPI
,它是 ASGI 框架uvicorn
,它是 ASGI 服务器ASGI 是面向“未来 web 应用”的 Python 标准,支持异步、高并发、WebSocket,而
uvicorn
是它的最常用服务器。