Понимание тут WSGI
Я пытаюсь понять функциональность WSGI и нуждаюсь в некоторой помощи.
до сих пор я знаю, что это своего рода промежуточное программное обеспечение между серверами и приложениями, используемое для сопряжения различных фреймворков приложений (которые находятся на стороне сервера) с приложением, при условии, что рассматриваемая платформа имеет адаптер WSGI. Продолжая теоретическую часть, я знаю, что для связи сервера с приложением сервер вызывает вызываемый (что требует двух аргументов: переменные среды и функция start_response). Здесь функция start_response предоставляется сервером (?) и используется приложением со статусом ответа и заголовком, за которым следует тело ответа.
Я мало понимаю из того, что я написал выше, поэтому вот вопросы новичка: 1) Что такое общий поток вызовов ? Приложение предоставит серверу вызываемый, а затем сервер вызовет приложение, используя этот вызываемый и используя функцию env_vars и start_response как споры?
2) больше всего меня смущает то, что приложение отправляет заголовки запросов, а затем отправляет тело ответа. Что это за запрос ?
пожалуйста, просветите меня, пока я не могу получить мою голову вокруг этого.
спасибо!
2 ответов
поток вызовов выглядит следующим образом:
- сервер получил http-соединение,
- сервер проанализировал строку http-запроса и заголовки, прочитал тело,
- сервер заполняет environ дикт по запросу
- сервер называет приложение вызываемым с environ и start_response в качестве аргументов
- приложение вызываемые звонки start_response статус ответ и заголовки ответов,
- приложение возвращает тело ответа на сервер,
- сервер отправляет HTTP-ответ клиенту.
для вашей второй проблемы запрос / ответ-это интерфейс, определенный протоколом wsgi (например, status = '200 OK', response_headers = [('Content-type', 'text / plain')]), а не то же самое с http запрос/ответ.
вы можете просмотреть модуль библиотеки стенда wsgiref в качестве ссылки.