Perl програму можна запустить как cgi-скрипт, или через mod_perl, который в свою очередь может быть как static или shared модуль. Объясните, пожалуйста, преимущества и недостатки каждого метода
cgi:
Запрос от клиента -> Веб сервер запускает интерпретатор -> Скрипт парсится, интерпретируется, выполняется -> Вывод передается веб-серверу -> Интерпретатор завершается -> Веб-сервер передает вод скрипта клиентуfast-cgi (тоже такой способ запуска per-server программ):
Запускается cgi-программа в виде демона (
что-то вроде:
while(1) {
acept_request();
generate_answer();
})
Запрос от клиента -> Веб-сервер передает запрос демону -> Демон генерирует ответ -> И передает его веб-серверу -> Веб-сервер его клиентуmod_perl (могу ошибаться, сам не работал):
Скрипт интерпретируется _встроенным в веб-сервер_ интерпретаторомЗапрос от клиента -> Веб-сервер передает запрос _уже интерпетированному_ скрипту -> скрипт генерирует ответ -> И передает его веб-серверу -> Веб-сервер его клиенту
В послудних двух случаях скрипт не интерпретируется каждый раз при запросе клиента (особенно актуально, для больших скриптов [не долго выполняющихся, а именно больших по объему])