CGI для обработки нескольких запросов на постоянное соединение HTTP - PullRequest
2 голосов
/ 04 августа 2010

CGI-программы обычно получают один HTTP-запрос.

HTTP 1.1 поддерживает постоянные HTTP-соединения, посредством которых выполняется несколько HTTP-запросов / ответов без закрытия соединения.

Есть ли способ дляCGI-программа (или аналогичный механизм) для обработки нескольких HTTP-запросов / ответов по одному и тому же соединению?

Я использую Apache httpd.

Ответы [ 2 ]

2 голосов
/ 05 августа 2010

Keep-alive - это одна из высокоуровневых функций HTTP, которая полностью обрабатывается веб-сервером. Они не входят в область применения CGI-приложений.

Доступ к CGI-скриптам через Apache mod_cgi работает с keep-alive для меня. Браузер повторно использует то же TCP-соединение для извлечения страницы, а затем ресурсов, на которые он ссылается, без необходимости выполнения каких-либо специальных сценариев.

Если вы имеете в виду, что вы хотите, чтобы один и тот же CGI процесс обрабатывал один запрос, а затем следующий (вместо завершения процесса и появления нового), боюсь, это невозможно , Веб-сервер будет перехватывать keep-alives и заставлять их выглядеть как отдельные запросы, прежде чем ваши скрипты смогут что-либо с этим сделать. (Если вы хотите сделать это для повышения производительности, рассмотрите другой интерфейс шлюза, такой как FastCGI или специфичные для языка опции, такие как WSGI.)

1 голос
/ 05 августа 2010

SCGI звучит именно так, как вы хотите.Это похоже на FastCGI, но более простое в реализации решение (S обозначает Simple:)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...