Как работает стек веб-приложений Python
Я отчаянно читал о сервисах python и REST, так как хочу начать изучать и создавать сервисы. Термины меня сильно смутили - мой прошлый опыт работы с веб-приложениями был ограниченным экспериментом с Apache+PHP. Исходя из этого, за последние два дня у меня был какой-то непростой момент, и я пришел к этой диаграмме, пытаясь разобраться во всем для себя.
Я испытываю желание изменить диаграмму, потому что кажется, что некоторые веб-фреймворки полностью реализованы в виде модулей, в то время как другие работают, когда сервер WSGI запускает компонент фреймворка, который, в свою очередь, вызывает ваше приложение, которое обычно использует модули, предоставляемые фреймворком. для некоторой функциональности. Это точно?
Вопросы:
- Что я упустил или неправильно понял?
- Кажется, что веб-сервер является необязательным, по крайней мере, некоторые WSGI-серверы могут работать "автономно", но часто ли это рекомендуется только для разработки / тестирования?
- Существует ли серийный WSGI-сервер качества?
- Как насчет того, когда не используется WSGI. Люди часто рекомендуют WSGI, но если я правильно понял, это для мобильности. Меня не волнует портирование между веб-серверами / стеками / фреймворками. У устранения слоев есть своя привлекательность. Когда не используется WSGI, как меняется изображение?
- Где происходит перезапись URL? Из того, что я прочитал, кажется, что это комбинация двух мест - веб-сервера и / или приложения. Если веб-сервер является лучшим местом для этого, это может создать важную зависимость от наличия гибкого и эффективного веб-сервера в стеке.
- Как я могу ограничить перезапись URL? Могу ли я избавиться от необходимости использовать перезапись URL, например, правильно разработав приложение? На самом деле, если бы я выбрал apache в качестве веб-сервера, казалось бы, из моего ограниченного понимания, что можно было бы попытаться исключить использование.htaccess - я представляю, что с выделенным сервером apache цели можно было бы отключить. htaccess и поместите правила в основной файл конфигурации, или, возможно, оптимизируйте использование.htaccess, имея поверхностную упрощенную структуру каталогов. Это, в сочетании с отключением всех, кроме самых необходимых модулей apache, может показаться изящным решением.
- В настоящее время я склоняюсь к использованию web.py в качестве фреймворка, и их страница установки, кажется, поддерживает lighttpd, с которым у меня нет опыта, но, кажется, его достаточно легко освоить. Как lighttpd + web.py меняет картину?
И самый важный вопрос из всех: как насчет того, когда приложение представляет собой RESTful API? Отличаются ли ответы на вышеуказанные вопросы от службы REST API?