主要的Web框架(如Django、Pyramid、Rails等)通常作为持久服务器运行,而独立的Web服务器(如nginx)则充当前端。Web服务器通过FastCGI或SCGI这样的协议进行连接:
browser --[http]--> nginx --[fastcgi]--> flup -> django
这对我来说似乎有些复杂,为什么要将请求转换为完全不同的协议,后端可以直接运行自己的HTTP服务器吗?
browser --[http]--> nginx --[http]--> wsgiref -> django
这种方法似乎更简单、更灵活,因为只有一个传输协议且符合RFC标准。
然而,我认为我从未见过一个web框架鼓励使用http-only设计,所以我认为一定有原因。
在这里使用FastCGI/SCGI协议的优点是什么?