Что такое CGI-скрипты, используемые в эти дни?
Я довольно хорошо разбираюсь в общих языках веб-программирования, но один из инструментов, с которыми я сейчас работаю, - это CGI. Все, что я могу сказать, это то, что скрипты CGI довольно медленные.
Насколько часто используется CGI сегодня? Если нет, то что он был заменен?
Существуют ли какие-либо нишевые функции, в которых CGI все еще жив и активно используется?
Ответы
Ответ 1
CGI был заменен огромным разнообразием технологий веб-программирования, включая PHP, различные расширения Apache, такие как mod_perl, Java различных вкусов и фреймворков, включая Java EE, Struts, Spring и т.д., основанные на Python фреймворки, такие как Django, Ruby on Rails и многие другие структуры Ruby и различные технологии Microsoft.
Я уверен, что CGI все еще используется для чего-то, но я предполагаю, что это в основном только небольшие фрагменты кода, которые сидят в течение многих лет. Wikipedia действительно упоминает, что FastCGI похож на CGI, но без серьезных недостатков производительности.
Ответ 2
CGI - это протокол, это самый простой и стандартный способ создания динамических страниц.
Существует много случаев, когда это полезно:
- Если вы хотите создать базовое приложение на языке без mod_XYZ, скажем C или Haskell, это может быть интенсивным вычислением.
- В встроенных системах, где память стоит дорого, и вы предпочитаете создавать CGI script
а не удерживать его в памяти все время.
- В некоторых сервисах хостинга, где вы хотите предоставить гибкость для написания программного обеспечения на стороне сервера в любой технологии, которую хотите, но, с другой стороны, не используют приложения президента в памяти, используя FastCGI (например, хостинг Sourceforge).
- Нагрузка на CGI низка, поэтому вы не заботитесь о нерестах приложений на запрос. Например, в таких блогах, как MoveableType, только обновления выполняются через CGI, все остальные обслуживаются
через статические страницы, которые CGI script изменяется при необходимости. Таким образом, стоимость нереста CGI script
очень низкая.
- Когда большая часть вашего контента является статическими страницами и вы хотите обслуживать его на сервере, таком как thttpd, так что очень немногие операции, которые выполняются, могут выполняться через CGI, который он поддерживает.
Итак... CGI прост, но по-прежнему очень полезен API, что позволяет просто делать вещи.
Например, script, показывающий время безотказной работы вашего сервера
#!/bin/bash
echo Content-Type: text/plain
echo
uptime
Что может быть проще, проще и меньше зависит от веб-сервера?
Ответ 3
Многие устаревшие сайты по-прежнему построены cgi сегодня, хотя люди в эти дни отходят от него. Одно из хорошо известных приложений, которые все еще используют CGI, которые я знаю, Блог MovableType.
Ответ 4
Я знаю о 2 проектах, которые активно разрабатываются, которые до сих пор используют сценарии CGI для хорошего эффекта.
Первый Webmin инструмент веб-администрирования, который я использую в течение многих лет.
Второй GitWeb, который позволяет вам настроить веб-интерфейс в репозитории Git.
Что касается скорости CGI (или ее отсутствия), я не могу прокомментировать это. Из моего опыта работы с Webmin я не могу сказать, что у меня были проблемы на этом фронте.
Ответ 5
Операционные системы реального времени, в которых перенос (например, PHP) не является вариантом.
Ответ 6
Многие общие хосты обслуживают серверные языки, такие как PHP, python и perl через CGI
Ответ 7
Я все еще использую его на встроенных компьютерах, у которых нет поддержки языка php.
Ответ 8
ASP, PHP, ASP.Net, Ruby on Rails - большие нападающие в эти дни.
Ответ 9
Как и у Cobol и Fortran, на CGI существуют большие системы денег, которые, конечно же, будут хорошо поддерживаться в будущем.
Не то, чтобы новое программное обеспечение не создавалось со всеми этими технологиями время от времени.
Ответ 10
Проект, который я оставил несколько месяцев назад, по-прежнему использует CGI. Тем не менее, сайт предназначен для очень небольшого набора пользователей (он имеет около 40 пользователей и, вероятно, менее 5 использует его часто). В то время как аппаратное обеспечение было заменено 3 или 4 раза, некоторые из этих кодов выполнялись почти 10 лет, практически без изменений. Я уверен, что другие технологии обеспечат повышение производительности, но текущая производительность приемлема, а трудозатраты на внесение изменений коротки, распространяются на слишком много областей и не очень хорошо разбираются в веб-технологиях (особенно с тех пор, как я ушел). Это приводит к тому, что "если он не сломался, не исправляйте это!"
Что касается замен, я использовал/планирую расследование: на моей новой должности я разработал веб-приложение с PHP. Тем не менее, я больше поклонник Python и планирую посмотреть в WSGI в ближайшее время. Я также планирую использовать AJAX для замены программы CGI на сайте, который я добровольно поддерживаю для некоммерческого использования.
Ответ 11
Я уверен, PayPal все еще использует cgi...