3

所以我已经阅读了一些关于 Python Web 框架(或服务器?)的内容,主要是TornadoBottle,但也有FAPWS3,但仍然存在一些灰色区域。

首先,这三个 Web 框架都被称为速度很快,但它们都包含一个用 Python 编写的 Web 服务器(FAPWS3 除外),它应该放在 nginx/Apache 后面。这不是降低性能吗?我的意思是,我们知道 Python 比 C 慢得多,为什么不只使用 nginx,或者最坏的情况,只使用包含的 Python Web 服务器?

4

1 回答 1

8

首先,Tornado 和 FAPWS3 是 Web 服务器,而 Bottle 是一个 Web 框架。这些属于完全不同的类别。

Web 框架通常作为WSGI服务器在 HTTP(“web”)代理后面运行。大多数框架中包含的 HTTP 服务器仅用于快速开发和部署以及在效率无关紧要的站点上轻松部署。

这个想法基本上是 HTTP 服务器(Apache/Lighttpd/Nginx/Tornado/FAPWS3 等)非常擅长理解 HTTP 并从磁盘提供静态文件。另一方面,动态内容是由 Python 服务器使用诸如 Bottle/Flask/web.py/Pylons/etc 之类的 Web 框架生成的。然后由 Web 框架生成的文档通过 WSGI 发送回 HTTP 服务器,放入 HTTP 响应并发送到客户端。

于 2011-11-12T22:36:34.833 回答