Создание Web-страниц. Гайсина Л.Ф. - 69 стр.

UptoLike

Составители: 

Как правило, шлюз производит свой вывод, который интерпретируется и
посылается обратно клиенту. Преимущество этого подхода состоит в том, что
шлюз не должен посылать полный HTTP/1.0 заголовок на каждый запрос.
Заголовок выходного потока. Для некоторых шлюзов может быть,
необходимо избегать обработки сервером их вывода, и общаться с клиентом
непосредственно. Для того, чтобы отличить такие шлюзы от остальных, CGI
требует, чтобы их имена начинались с префикса nph-. В этом случае, на шлюзе
лежит ответственность за возвращение клиенту синтаксически правильного
ответа.
Заголовки с синтаксическим разбором. Вывод шлюза начинается с
маленького заголовка. Он содержит текстовые строки, в том же формате, как и
в 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/
--- конец вывода ---
68
      Как правило, шлюз производит свой вывод, который интерпретируется и
посылается обратно клиенту. Преимущество этого подхода состоит в том, что
шлюз не должен посылать полный HTTP/1.0 заголовок на каждый запрос.
      Заголовок выходного потока. Для некоторых шлюзов может быть,
необходимо избегать обработки сервером их вывода, и общаться с клиентом
непосредственно. Для того, чтобы отличить такие шлюзы от остальных, CGI
требует, чтобы их имена начинались с префикса nph-. В этом случае, на шлюзе
лежит ответственность за возвращение клиенту синтаксически правильного
ответа.
      Заголовки с синтаксическим разбором. Вывод шлюза начинается с
маленького заголовка. Он содержит текстовые строки, в том же формате, как и
в 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/
      --- конец вывода ---
68