Когда требуется CGI/FastCGI, а когда нет

Возможно, это немного нубский вопрос, но я достаточно прочитал о CGI/FastCGI/WSGI и до сих пор не понял полностью, поэтому решил задать его.

Во-первых, я хочу сказать, что я понял. Я понял, что CGI — это интерфейсная программа между веб-сервером (например, Apache или NGINX) и приложением веб-сервера (например, приложением Python). Также я понял, что можно просто настроив веб-сервер, обслуживать статический файл (html). Для этого вам не нужен CGI/WSGI. Вам нужен CGI или аналогичный, если вы хотите обслуживать динамический контент, а не только один файл в каком-то месте. Под обслуживанием я подразумеваю создание html какой-либо другой программой, которая затем передаст его программе веб-сервера.

Тогда вещь, которую я не понимаю. Почему angularJS не требует CGI или подобного? Это потому, что если приложение angularJS развернуто, например, на Nginx, его можно обслуживать напрямую, обслуживая файл index.html? И каким-то волшебным образом AngularJS обрабатывает все (почти) после этого? Но если у вас есть веб-приложение на основе Django, вам нужен WSGI, который на самом деле поставляется в комплекте с Django, поэтому вам не нужно его модифицировать?


person Ville Miekk-oja    schedule 12.03.2015    source источник


Ответы (1)


Я не могу сказать ничего полезного о Django, но Angular просто живет в веб-браузере клиента. На сервере ничего делать не нужно, весь программный код обрабатывается на JavaScript, который запускается на клиенте. Таким образом, все, что должен делать ваш веб-сервер, — это обслуживать кучу статических файлов (частичные шаблоны html, файлы javascript, css и т. д.), а Angular позаботится обо всем остальном.

Конечно, как только вы начнете получать динамические данные с сервера через Angular, эта ситуация может измениться, но в принципе вы уже можете многое сделать со статическими файлами json, как, например, показано в учебнике по каноническому angular phonecat.

person Fasermaler    schedule 12.03.2015