ASGI 是什么?

ASGI = Asynchronous Server Gateway Interface (异步服务器网关接口)

ASGI是 Python Web 生态的一个 协议规范 ,定义了「服务器(Uvicorn)」和「应用(FastAPI)」之间怎么通信。

类比 C++:假设你写了一个通用的 HTTP 服务器,你想让它能跑任何人写的应用。你就定义一个接口:

// C++ 伪代码:你定义的接口规范
class Application {
public:
    virtual Response handle(Request req) = 0;
};

// 你的服务器只管调这个接口
Response handle_connection(Socket sock) {
    Request req = parse_http(sock);
    Application* app = get_user_app();
    return app->handle(req);  // 服务器不关心业务,只管转发
}

ASGI 就是 Python 版的这个接口规范 ,只不过它是异步的(基于 async/await )。Uvicorn 实现了「服务器」侧,FastAPI 实现了「应用」侧。
知识扩展 :Python 还有老一代的 WSGI (同步版本,如 Gunicorn 用的)。ASGI 是 WSGI 的异步升级版,能处理 WebSocket 这种长连接。