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

时间:2012-01-19 05:19:56

标签: django http fastcgi scgi

主要的Web框架(例如Django,Pyramid,Rails等)通常作为持久性服务器运行,并使用像nginx这样的单独Web服务器作为前端。 Web服务器通过FastCGI或SCGI等协议进行连接:

browser --[http]--> nginx --[fastcgi]--> flup -> django

这对我来说似乎很复杂;当后端可以运行自己的HTTP服务器时,为什么请求转换为完全不同的协议?

browser --[http]--> nginx --[http]--> wsgiref -> django

这种方法似乎既简单又灵活,因为只有一种传输协议,而且它是一种RFC。

但是,我不认为我曾经看到一个Web框架鼓励纯http设计,所以我认为必须有一个理由。

在这里使用像FastCGI / SCGI这样的协议有什么好处?

1 个答案:

答案 0 :(得分:7)

HTTP是large, complex protocol。将接口削减到FastCGI或WSGI提供的功能允许框架更快地处理请求,而不是处理原始请求。