Я задал подобный (хотя это более близко к реализации, чем концепции) вопрос здесь:
отправка HTTP-запроса с веб-сервера процессу CGI / FastCGI
Однако вот что я смог узнать по дороге:
CGI - это набор «стандартов», которые определяют, как HTTP / веб-сервер должен взаимодействовать с внешними программами. Обратите внимание на слово стандарты! Хотя это и не протокол out-out (например, HTTP, TCP и т. Д.), Но он довольно близок к тому, поскольку набор стандартов соблюдается большинством внешних программ, генерирующих HTML (Ruby, PHP, Python и т. Д.).
Вы можете узнать больше о CGI здесь:
http://hoohoo.ncsa.illinois.edu/cgi/intro.html
и здесь:
http://www.w3.org/CGI/
FastCGI - это улучшение способа обработки процессов CGI - проще говоря, процесс FastCGI остается загруженным в памяти в течение более длительного времени, чтобы он мог обрабатывать несколько запросов во время загрузки в память. Очевидно, что это работает более эффективно, поскольку время и ресурсы, теряемые при загрузке базовой среды CGI, никогда не происходят так часто, как в процессах FastCGI
Немного не по пути и специфично для Rails, но это интересная хитрость:
http://izumi.plan99.net/blog/index.php/2007/04/05/saving-memory-in-ruby-on-rails/