CGI-программа возвращает итог работы, отвечающий (открыто или скрытно) целям запроса. В соответствии со стандартом http сервер кодирует итог работы, используя http для того, чтобы отправить результат клиенту. Это значит, что сервер добавляет в сообщение, которое формируется CGI-программой, нужные http-заголовки.
Результат работы CGI-программы имеет две части. Это заголовок и тело сообщения. Заголовок может иметь одну или несколько строк текста, которые пустой строкой отделяются от тела. А оно (тело сообщения) содержит данные, которые представлены в MIME-формате, обозначенном в заголовке.
Тело документа сервер не меняет. А это значит: сервер передает ответ, сформированный CGI-программой, "как он есть".
Специальные строки заголовка
В выходном потоке сервер опознает такие строки заголовка:
Content-Type: показывает MIME-тип тела сообщения. Формат значения данного параметра должен быть - type/subtype.
URI: <value>
Это значение показывает ссылку (URL) на локальный файл (сообщение из которого в теле сообщения возвратится к клиенту) или полный URL. Если значение - локальный файл, то сервер отсылает его в качестве результата запроса: словно при генерировании запроса клиент применил метод GET. Если это значение является полным URL, в этом случае сообщение: "401 redirect" - сервер возвращает обратно, чтобы обеспечить прямую загрузку данного объекта.
Location:
Это то же, что и URL. Однако эта форма в настоящее время не используется. Параметр value нельзя брать в угловые скобки.
Другие заголовки
Они передаются клиенту так, как они представлены.
Прямой возврат
Конечному приложению сервер разрешает прямой возврат итога запроса клиенту. Это делается с помощью включения в заголовок информационного протокола возвращаемого сообщения. CGI-программам это позволяет формировать (создавать) непосредственный ответ клиенту без предшествующей его обработки сервером - с указанием http-заголовка.
Результат запроса, помещенный CGI-программой в Output File (выходной файл), анализируется сервером. В случае, если первая строка - это"http/1.0", он предполагает, что в сообщении находится полный http-ответ, и без упаковки отправляет его клиенту.