django - 为什么 Web 框架通过 FastCGI/SCGI 而不是 HTTP 提供服务?

标签 django http fastcgi scgi

主要的 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/

相关文章:

c# - 设置 Context.Response.StatusCode 似乎不起作用

Django 与 nginx 总是返回错误 404

golang与fastcgi如何读取REMOTE_USER

django - django如何处理多用户

php - 带有 JSON 正文的 HTTP GET 请求是否有大小限制?

security - HTTP 拆分和 HTTP 走私之间的区别?

php - nginx:连接到上游时连接()失败(111:连接被拒绝)

Django JsonField 按两个字段过滤

python - DRF APITestCase 不将 `multipart` 与其他参数一起使用

python - Django HTML5 样板页眉和页脚