Для разработки консольного CGI-приложения не требуется никаких специальных средств. Для вывода результатов выполнения этого приложения используются обычные процедуры вывода информации на консоль. В языке C это стандартные функции printf, cprintf, puts и другие. Однако выводимая таким образом информация должна соответствовать протоколу HTTP, используемому на уровне приложений и обеспечивающему обмен только текстовой информацией.
Для передачи двоичных файлов по протоколу HTTP используется спецификация MIME (Multipurpose Internet Mail Extention). Согласно спецификации MIME, формат данных описывается следующим образом:
<Тип>/<подтип>
<Тип> определяет, какого рода информация содержится в двоичном файле (текст, приложение, изображение, видеозапись и т.п.), а <подтип> - формат файла.
Сеанс взаимодействия с web-сервером по протоколу HTTP в общем виде состоит из таких шагов:
1) установление соединения;
2) передача запроса клиента и прием его сервером;
3) подготовка ответа сервера и передача его клиенту;
4) разрыв соединения.
Запрос клиента представляет собой требование на передачу HTML-документа или какого-либо другого ресурса. Ответ сервера содержит запрашиваемый ресурс. С точки зрения web-приложения структура ответа более важна, чем структура запроса, поскольку выполняющиеся на сервере программы должны сами формировать ответ сервера клиенту.
Основные компоненты ответа сервера аналогичны компонентам запроса клиента и в себя включают следующие элементы:
1) строку состояния;
2) поля заголовка;
3) пустую строку;
4) тело ответа.
Строка состояния имеет следующий формат:
<версия протокола> <код ответа> <пояснения>
Здесь:
1) версия протокола задает в формате HTTP/<версия>. Например, при использовании версии HTTP 1.0 этот элемент выглядит так: HTTP/1.0;
2) код ответа представляет собой трехзначное десятичное число, обозначающее результат обработки запроса клиента сервером;
3) пояснения расшифровывают код ответа в символьном виде.
Поля заголовка в ответе сервера имеют такой формат:
<имя поля> : <значение>
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.