Передача ответа из программы CGI
Вне зависимости от использованного метода передачи данных (GET или POST) результат своей работы программа CGI должна направить в стандартный поток вывода STDOUT. Если программа составлена на языке программирования C, для записи результат работы она может воспользоваться, например, функцией printf или fwrite.
Чаще всего программы CGI используются для создания динамических документов HTML на основе данных, полученных из формы. В этом случае первой строкой, которую необходимо вывести в стандартный поток вывода STDOUT, должна быть следующая строка заголовка HTTP:
Content-type: text/html
Сразу за этой строкой необходимо вывести еще одну пустую строку, которая послужит разделителем между заголовком HTTP и данными документа HTML.
Ниже мы привели фрагмент кода, в котором программа CGI динамически формирует документ HTML и выводит его в стандартный поток вывода STDOUT:
printf("Content-type: text/html\n\n");
printf("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">");
printf("<HTML><HEAD><TITLE>XYZ Incorporation</TITLE></HEAD>”
”<BODY BGCOLOR=#FFFFFF>");
printf("<H1>Результаты обработки формы</H1>");
. . .
printf("</BODY></HTML>");
Обратите внимание на символы перевода строки “\n\n”. Первый из них закрывает строку заголовка HTTP, а второй нужен для создания пустой разделительной строки.