Читайте также: |
|
Вывод шлюза начинается с маленького заголовка. Он содержит текстовые строки, в том же формате, как и в HTTP-заголовке и завершается пустой строкой (содержащей только символ перевода строки или CR/LF).
Любые строки заголовка, не являющиеся директивами сервера, посылаются непосредственно клиенту. В настоящий момент, CGI спецификация определяет три директивы сервера:
- Content-type – MIME тип возвращаемого документа.
- Location – это поле используется в случае, когда необходимо указать серверу, что возвращается не сам документ, а ссылка на него. Если аргументом является URL, то сервер передаст клиенту указание на перенаправление запроса. Если аргумент представляет собой виртуальный путь, сервер вернет клиенту заданный этим путем документ, как если бы клиент запрашивал его непосредственно.
- Status – эта директива используется для задания серверу HTTP/1.0 строки-статус, которая будет послана клиенту. Формат: nnn xxxxx, где nnn – 3-х цифровой статус-код, и xxxxx – строка причины, такая, как “Forbidden” (Запрещено).
Примеры:
Предположим, имеется некоторый текстовый конвертер в HTML. Когда он оканчивает свою работу, он должен произвести следующий вывод в стандартный выходной поток:
--- начало вывода ---
Content-type: text/html
--- конец вывода ---
Теперь рассмотрим шлюз, который, в некоторых случаях, должен выдать документ /path/doc.txt с данного сервера, как если бы он был непосредственно востребован клиентом через http://server:port/path/doc.txt. В этом случае вывод шлюза будет таков:
--- начало вывода ---
Location: path/doc.txt
--- конец вывода ---
Наконец, предположим, что шлюз возвращает ссылки на gopherсервер, например на gopher://gopher.ncsa.uiuc.edu/. Вывод шлюза будет следующий:
--- начало вывода ---
Location: gopher://gopher.ncsa.uiuc.edu/
--- конец вывода ---
Non-parsed headers
Допустим теперь, что у нас имеется шлюз, который общается с клиентом непосредственно. Как уже отмечалось, его имя должно начинаться с префикса nph- и он должен возвращать допустимый HTTP заголовок. В этом случае, если доступ к шлюзу был осуществлен со значением SERVER_PROTOCOL равным HTTP/1.0, его вывод должен удовлетворять HTTP/1.0:
--- начало вывода ---
HTTP/1.0 200 OK
Server: NCSA/1.0а6
Content-type: text/plain
--- конец вывода ---
CGI-Содержание Запроса и Содержание Ответа
Общие понятия
Полный-Запрос и Полный-Ответ может использоваться для передачи некоторой информации в отдельных запросах и ответах. Этой информацией является Содержание-Запроса или Содержание-Ответа соответственно, а также Заголовок-Содержания.
Дата добавления: 2014-12-15; просмотров: 104 | Поможем написать вашу работу | Нарушение авторских прав |