Какие сценарии CGI используются в эти дни? - PullRequest
19 голосов
/ 22 июля 2009

Я довольно хорошо разбираюсь в общих языках веб-программирования, но один из инструментов, с которыми я сейчас работаю, - CGI. Все, что я могу сказать, это то, что CGI-скрипты работают довольно медленно.

CGI все еще широко используется сегодня? Если нет, то чем он был заменен?
Есть ли нишевые функции, в которых CGI все еще жив и активно используется?

Ответы [ 10 ]

27 голосов
/ 23 июля 2009

CGI - это протокол, это самый простой и самый стандартный способ создания динамических страниц.

Есть много случаев, когда это полезно:

  1. Когда вы хотите создать базовое приложение на языке без mod_XYZ, скажем, C или Haskell, это может потребовать больших вычислительных ресурсов.
  2. Во встроенных системах, где память стоит дорого, и вы предпочитаете запускать CGI-скрипт. вместо того, чтобы держать его в памяти все время.
  3. В некоторых хостинговых службах, где вы хотите предоставить гибкость при написании программного обеспечения на стороне сервера с использованием любой технологии, которую вы хотите, но, с другой стороны, не храните приложения президента в памяти с помощью FastCGI (например, хостинг Sourceforge).
  4. Нагрузка на CGI низкая, поэтому вам не нужно создавать приложения для каждого запроса. Например, в блогах, таких как MoveableType, только обновления выполняются через CGI, все остальное обслуживается через статические страницы, которые CGI-скрипт меняет при необходимости. Так что стоимость порождения CGI скрипта очень низкий.
  5. Когда большая часть вашего контента представляет собой статические страницы и вы хотите обслуживать его с помощью сервера, такого как thttpd, с помощью CGI можно выполнить очень мало операций, которые он поддерживает.

Итак ... CGI прост, но все еще очень полезен API , позволяющий делать вещи просто.

Например, скрипт, который показывает время работы вашего сервера

#!/bin/bash
echo Content-Type: text/plain
echo
uptime

Что может быть проще, проще и менее зависимым от веб-сервера?

17 голосов
/ 22 июля 2009

CGI был заменен огромным разнообразием технологий веб-программирования, включая PHP, различные расширения Apache, такие как mod_perl, Java различных разновидностей и сред, включая Java EE, Struts, Spring и т. Д., Основанные на Python инфраструктуры, такие как Django, Ruby Rails и многие другие фреймворки Ruby, а также различные технологии Microsoft.

Я уверен, что CGI все еще используется для чего-то , но я бы предположил, что в основном это всего лишь маленькие кусочки кода, которые сидят годами. В Википедии полезно упомянуть, что FastCGI похож на CGI, но без существенных недостатков производительности.

4 голосов
/ 22 июля 2009

Многие старые сайты по-прежнему создаются с помощью CGI, хотя в наши дни люди уходят от него. Одно из известных приложений, которое все еще использует CGI, которое я знаю, это MovableType blog .

2 голосов
/ 31 августа 2009

Операционные системы реального времени, в которых портирование (например, PHP) недоступно.

2 голосов
/ 22 июля 2009

Мне известно о 2 проектах, которые активно разрабатываются и в которых все еще используются CGI-скрипты.

Первый - это Webmin веб-инструмент системного администрирования, которым я пользуюсь годами.

Второй - GitWeb , который позволяет настроить веб-интерфейс для ваших репозиториев Git.

Что касается скорости CGI (или ее отсутствия), я не могу это прокомментировать. По своему опыту работы с Webmin я не могу сказать, что у меня были какие-то проблемы на этом фронте.

1 голос
/ 05 декабря 2012

Я все еще использую его на встроенных компьютерах, которые не поддерживают php Language.

1 голос
/ 22 июля 2009

Многие общие хосты обслуживают серверные языки, такие как PHP, python и perl через CGI

0 голосов
/ 22 июля 2009

Проект, который я покинул несколько месяцев назад, все еще использует CGI. Тем не менее, сайт предназначен для очень небольшого набора пользователей (он имеет всего около 40 пользователей, и, вероятно, его используют менее 5). В то время как оборудование было заменено 3 или 4 раза, часть этого кода работала почти 10 лет, практически без изменений. Я уверен, что другие технологии обеспечат повышение производительности, но текущая производительность является приемлемой, и кадровые ресурсы для внесения изменений невелики, разбросаны по слишком многим областям и плохо разбираются в веб-технологиях (особенно с тех пор, как я ушел). Это приводит к позиции «Если это не сломано, не исправляйте это!»

Что касается замен, которые я использовал / планирую исследовать: на новой должности я разработал веб-приложение на PHP. Тем не менее, я больше фанат Python и планирую заглянуть в WSGI в ближайшее время. Я также планирую использовать AJAX для замены программы CGI на сайте, который я добровольно поддерживаю для некоммерческой организации.

0 голосов
/ 22 июля 2009

Так же, как Cobol и Fortran, существуют системы с большими деньгами, построенные на CGI, которые, конечно, будут поддерживаться в будущем.

Не то, чтобы новое программное обеспечение не создавалось время от времени со всеми этими технологиями.

0 голосов
/ 22 июля 2009

ASP, PHP, ASP.Net, Ruby on Rails стали самыми популярными в наши дни.

...