📝 ASGI (Asynchronous Server Gateway Interface)
Metadata de la clase
Fecha: 2026-05-06 Hora: 15:35 Profesor: No especificado Estado: 🟡 Por procesar
🎯 Objetivo de la clase
Entender qué es ASGI, cómo funciona, y por qué es fundamental para los servidores web modernos en Python.
📊 Captura Rápida
⚡ Notas Rápidas
- ASGI = especificación para aplicaciones web asincrónicas en Python.
- Es la evolución asincrónica de WSGI (Web Server Gateway Interface).
- Permite que el servidor maneje múltiples conexiones simultáneamente sin bloqueos.
uvicornes un servidor ASGI que ejecuta aplicaciones con el comandouv.
🔑 Conceptos Clave
- ASGI define cómo interactúan servidores web y aplicaciones Python.
- WSGI = sincrónico, ASGI = asincrónico.
- Un servidor ASGI puede procesar muchas peticiones concurrentemente.
- FastAPI y Starlette utilizan ASGI por defecto.
❓ Dudas
- ¿Qué diferencia hay entre ASGI y WSGI?
- ¿Necesito entender async/await para usar ASGI?
- ¿Por qué ASGI es mejor que WSGI para aplicaciones modernas?
💡 Insights
- ASGI no es un framework, es una especificación de interfaz entre servidor y aplicación.
- La asincronía en ASGI permite mejor utilización de recursos en aplicaciones web.
⚠️ Importante
- No todas las librerías Python son asincrónicas: algunas bloquean aún dentro de ASGI.
- ASGI requiere un entendimiento básico de
asyncyawait.
📝 Notas Detalladas
¿Qué es ASGI?
ASGI es una especificación que define cómo los servidores web Python se comunican con aplicaciones web asincrónicas. Actúa como un puente entre el protocolo HTTP y la lógica de la aplicación.
Antes de ASGI existía WSGI (sincrónico), que procesaba una solicitud a la vez. ASGI permite procesar múltiples solicitudes concurrentemente usando async/await.
Diferencia entre WSGI y ASGI
| Característica | WSGI | ASGI |
|---|---|---|
| Modelo | Sincrónico | Asincrónico |
| Concurrencia | Múltiples procesos/threads | Async/await en un evento loop |
| Bloqueos | Bloquean la aplicación | No bloquean si se usa async |
| Frameworks | Django, Flask tradicional | FastAPI, Starlette, Quart |
| Escalabilidad | Limitada por procesos | Mejor uso de recursos |
Ejemplos de servidores ASGI
uvicorn(recomendado)hypercorndaphne
¿Cómo funciona ASGI con uv?
Cuando ejecutas:
uv app:app --reloadEstás indicando a uvicorn que:
- Cargue la aplicación ASGI desde
app.py(variableapp). - Reinicie automáticamente ante cambios de código (
--reload). - Procese solicitudes de forma asincrónica.
Relación con async
ASGI y async están íntimamente ligados. Para aprovechar ASGI, las funciones manejadoras deben ser async:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"message": "Hello"}Sin async, la aplicación se comportaría como WSGI tradicional y perdería beneficios de ASGI.
🔄 Procesamiento Post-Clase
📋 Checklist de Procesamiento
- Confirmar la diferencia WSGI vs ASGI con ejemplos prácticos.
- Revisar cómo FastAPI usa ASGI.
- Entender async/await en profundidad.
🎯 Acciones Prioritarias
- Leer la nota sobre async - Programación asincrónica.
- Probar una aplicación FastAPI con
uv. - Comparar rendimiento de WSGI vs ASGI con múltiples conexiones.
🔗 Conexiones
🎴 Flashcards Rápidas
¿Qué es ASGI?::Especificación para servidores y aplicaciones web asincrónicas en Python. card ¿Cuál es la principal ventaja de ASGI sobre WSGI?::Manejo concurrente de solicitudes sin bloqueos gracias a async/await. card ¿Qué es uvicorn?::Un servidor ASGI rápido para ejecutar aplicaciones Python asincrónicas. card
🧪 Aplicación
- Explicarlo sin consultar la nota
- Resolver un caso nuevo o escribir un ejemplo
- Compararlo con una alternativa
- Usarlo en un proyecto