Краткое и точное описание двух интерфейсов веб-сервера Python, их различий в структуре и вариантов использования.
Прежде чем мы разберемся с WSGI и ASGI, обратите внимание на то, что веб-фреймворки, такие как Flask и Django, могут использоваться как с WSGI, так и с ASGI, но по умолчанию они не имеют встроенной поддержки асинхронного программирования.
Чтобы использовать Flask с ASGI, вам потребуется сторонняя библиотека, такая как gunicorn
, тогда как для Django вам понадобится такая библиотека, как uvicorn
.
WSGI
WSGI означает интерфейс шлюза веб-сервера. «WSGI» — это тип интерфейса, который находится между сервером и клиентом. Этот интерфейс определяет метод обмена данными между клиентом и сервером.
WSGI устарел и очень широко используется многими компаниями и приложениями. Некоторые примеры —
- Реддит
- Инстаграм
- Спотифай
- Airbnb
Ключевые моменты о WSGI —
- Синхронный: WSGI является синхронным по своей природе, а это означает, что приложению необходимо будет обработать текущий запрос, прежде чем принять новый. Это приводит к увеличению времени обработки при одновременной обработке нескольких запросов. (Однако это можно в некоторой степени смягчить с помощью рабочих!)
- Отсутствие поддержки асинхронного программирования: WSGI не предоставляет встроенной поддержки асинхронного программирования, что может быть проблемой, если вы привыкли писать асинхронный код.
- Широкое распространение. У WSGI есть одно большое преимущество перед ASGI — широкое распространение. WSGI — это зрелый серверный интерфейс, который используется во многих основных платформах и приложениях.
АСГИ
ASGI означает асинхронный интерфейс шлюза. «ASGI» — это опять же тип интерфейса, который находится между сервером и клиентом. Этот интерфейс определяет метод обмена данными между клиентом и сервером.
В отличие от WSGI, ASGI не очень старый и также очень широко используется многими веб-сайтами и приложениями. Некоторые приложения и технологии, использующие ASGI—
- Раздор
- дергаться
- Next.js
Ключевые моменты об АСГИ —
- Асинхронный: ASGI по своей природе асинхронный, а это означает, что приложению не нужно обрабатывать один запрос, прежде чем принять новый. Он может одновременно принимать несколько запросов и работать над ними параллельно. Это приводит к сокращению времени обработки при одновременной обработке нескольких запросов.
- Поддержка асинхронного программирования. Асинхронный интерфейс поддерживает и поддерживает парадигму асинхронного программирования.
- Меньше принято: у ASGI может быть небольшой недостаток по сравнению с WSGI, который заключается в его более низком уровне внедрения.
Это был краткий обзор того, что такое WSGI и ASGI и каковы их ключевые атрибуты. Я знаю, что пост был очень коротким, поэтому будет следующая статья о том, почему вам следует перейти на фреймворк ASGI, так что следите за обновлениями и спасибо за чтение! 🖤
Проверьте эти другие удивительные посты -
На простом английском
Спасибо, что являетесь частью нашего сообщества! Прежде чем уйти:
- Обязательно аплодируйте и подпишитесь на автора! 👏
- Вы можете найти еще больше контента на PlainEnglish.io 🚀
- Подпишитесь на нашу бесплатную еженедельную рассылку. 🗞️
- Подпишитесь на нас в Twitter, LinkedIn, YouTube >» и Discord.