Механизм генерации отклика скриптом
Существует только один способ вернуть данные серверу и, соответственно, браузеру пользователя — писать в поток стандартного вывода (STDOUT). При этом скрипт должен формировать HTTP-сообщение.
Сначала выводятся директивы HTTP-заголовка. В минимальном варианте это либо
Content-type: text/html,
либо
Location: http://intuit.ru/
В первом случае определяется тип тела HTTP-сообщения, а во втором осуществляется перенаправление запроса.
После заголовка генерируется отклик в виде тела HTTP-сообщения, которое должно быть отделено от заголовка пустой строкой:
#!/bin/sh echo Content-type: text/plain echo echo Hello
В данном случае используется командный интерпретатор sh.
Если скрипт начинает формирование заголовка с директивы версии HTTP-протокола, то сервер не анализирует отклик и передает его как есть. Если в заголовке, сгенерированном скриптом, эта директива отсутствует, то сервер считает, что заголовок неполный, и вставляет в него дополнительные директивы.