什么时候需要 CGI/FastCGI 什么时候不需要

When is CGI/FastCGI required and when it is not

这可能是个小菜鸟问题,但我已经阅读了很多关于 CGI/FastCGI/WSGI 的内容,但仍然没有完全理解,所以我决定问一下。

首先,我想说一下我的理解。我了解到 CGI 是 Web 服务器(例如 Apache 或 NGINX)和 Web 服务器应用程序(例如 Python 应用程序)之间的接口程序。另外,据我了解,您可以简单地通过配置 Web 服务器来提供静态文件 (html)。你不需要 CGI/WSGI 。当你想要提供动态内容时,你需要 CGI 或类似的东西,而不仅仅是某个位置的一个文件。通过服务,我的意思是通过另一个程序生成 html,然后将其提供给网络服务器程序

然后这个东西我就不明白了。为什么 angularJS 不需要 CGI 或类似的东西?是因为如果部署到例如 Nginx,angularJS 应用程序可以通过提供 index.html 文件直接提供服务吗?不知何故,AngularJS 之后(几乎)处理了所有事情?但是如果你有一个基于 Django 的 web 应用程序,那么你确实需要一个 WSGI,它实际上是捆绑在 Django 中的,所以你不需要修改它?

我不能说任何关于 Django 有用的东西,但 Angular 只是存在于客户端 Web 浏览器中。它不需要在服务器上做任何事情,所有程序代码都在 JavaScript 中处理,在客户端运行。所以基本上你的网络服务器所要做的就是提供一堆静态文件(html 部分模板,javascript 文件,css 等),Angular 负责其余的工作。

当然,一旦你开始通过 Angular 从服务器获取动态数据,这种情况可能会改变,但原则上你已经可以使用静态 json 文件做很多事情,比如例如规范 angular phonecat 教程显示。