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