Back to questions
Junior — Middle
67
Объясните, что такое ASGI и для чего он используется в современных веб-приложениях?
Answer from AI
sobes.tech AI
ASGI (Asynchronous Server Gateway Interface) — это спецификация интерфейса между веб-серверами и Python-приложениями, которая поддерживает асинхронное программирование. В отличие от WSGI, который работает синхронно, ASGI позволяет обрабатывать несколько запросов одновременно, поддерживает WebSocket и другие протоколы, требующие постоянного соединения.
ASGI используется в современных веб-приложениях для повышения производительности и масштабируемости, особенно когда нужно работать с реальным временем, долгоживущими соединениями или асинхронными задачами. Например, фреймворки как Starlette, FastAPI и Django Channels используют ASGI для поддержки асинхронных операций.
Пример простого ASGI-приложения:
async def app(scope, receive, send):
if scope['type'] == 'http':
await send({
'type': 'http.response.start',
'status': 200,
'headers': [(b'content-type', b'text/plain')],
})
await send({
'type': 'http.response.body',
'body': b'Hello, ASGI!',
})