主要的 Web 框架(如 Django、Pyramid、Rails 等)通常作为持久服务器运行,并使用单独的 Web 服务器(如 nginx)作为前端。 Web 服务器通过 FastCGI 或 SCGI 等协议(protocol)连接:
browser --[http]--> nginx --[fastcgi]--> flup -> django
这对我来说似乎很费解;为什么请求转换为完全不同的协议(protocol),而后端可以运行自己的 HTTP 服务器?
browser --[http]--> nginx --[http]--> wsgiref -> django
这种方法看起来既简单又灵活,因为只有一个传输协议(protocol),而且它是一个 RFC。
但是,我不认为我曾经见过一个 web 框架鼓励纯 http 设计,所以我认为这一定是有原因的。
在这里使用像 FastCGI/SCGI 这样的协议(protocol)有什么好处?
最佳答案
HTTP 是一个 large, complex protocol .将接口(interface)简化为 FastCGI 或 WSGI 提供的功能允许框架比处理原始请求更快地处理请求。
关于django - 为什么 Web 框架通过 FastCGI/SCGI 而不是 HTTP 提供服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8921392/