2.6.3. Вивід інформації шлюзом

Основні концепції

Шлюз зд йснює св й висновок у стандартний пот к висновку. Цей висновок може являти собою чи

документ, сгенерований шлюзом, чи інструкції серверу, де одержати необхідний документ.

Як правило, шлюз робить св й висновок, що нтерпретується посилається назад кл єнту. Перевага

цього підходу полягає втому, що шлюз не повинний посилати повний HTTP/l.0 заголовок на кожен

запит.

Заголовок вихідного потоку

Для деяких шлюзів може бути необхідно уникати обробки сервером їхнього висновку, і спілкуватися зклієнтом безпосередньо. Для того, щоб відрізнити такі шлюзи від інших, CGI вимагає, щоб їхні імена починалися зпрефікса nph-. Уцьому випадку, на шлюзі лежить в дпов дальн сть за повернення кл єнту синтаксично правильної в дпов д . Заголовки із синтаксичним розбором

Висновок шлюзу починається з маленького заголовка. Він містить текстові рядки, утім же форматі, як в HTTP заголовку  завершується порожн м рядком (утримуючої т льки символ перекладу чи рядка CR/LF).

Будь-як рядки заголовка, що не є директивами сервера, посилаються безпосередньо кл єнту. В даний момент, CGI специфікація визначає три директиви сервера:

Content-type

MIME тип документа, що повертається. Location

Це поле використовуєтьсяу випадку, коли необхідно вказати серверу, що повертається не сам документ, а посилання на нього.

Якщо аргументом є URL, то сервер передасть клієнту вказівка на перенапрямок запиту. Якщо аргумент являє собою в ртуальний шлях, сервер поверне кл єнту заданий цим шляхом документ, як якби кл єнт запитував його безпосередньо. • Status

Ця директива використовується для завдання серверу HTTP/l.0 статусА-рядок-статус, що буде послана клієнту. Формат: nnn xxxxx де nnn - З-х цифровий кодА-статус-код, і xxxxx рядок причини, така, як "Forbidden" (Заборонено).

Утримуваний-С*І-зміст Запиту іЗміст Відповіді Загальні Поняття

ЗапитА-Повн-запит іВідповідь-Повн-відповідь може використовуватися для передачі деякої нформац ї вокремихзапитах в дпов дях. Ц єю нформац єю єчиЗапиту Зм сту-В дпов д відповідно, атакож Змісти-Утримування-заголовка-змісту.

Поля Утримування-Заголовка-змісту

Поля Утримування-Заголовка-змісту містять необов'язкову метаінформацію про чи Запит Змісту -В дпов д в дпов дно. Якщо т ло в дпов дного пов домлення ( чи запиту в дпов д ) не є присутн м, то Змісти-Утримування-заголовка-змісту містить інформацію про запитуваний ресурс. Змісти-Утримування-заголовка-змісту = Allow І

Content-Encoding І Content-Language І Content-Length І Content-Transfer-Encoding І Content-Type Derived-From І Expires І Last-Modified Link І Location І Title І URI-header І Version І Розшир енняА-Поширення-заголовка-розширення Розшир енняА-Поширення-заголовка-розширення = HTTP-заголовок Деяк зпол взаголовка зм сти описан нижче. Allow

Поле заголовка Allow являє собою список метод в, що п дтримує ресурс, дентиф кований URI-запиту. Призначення цього полючи - точне нформування одержувача про припустим методи, асоційованих з ресурсом; це поле повинне бути присутнім увідповіді зі статус кодом "405 Method Not Allowed".

Allow = "Allow" ":" lMemod

Приклад використання:

Allow: GET, HEAD, PUT

Звичайно, кл єнт може спробувати використовувати нш методи. Однак, рекомендується випливати тим методам, що зазначен вданому пол . Уцьогополючи немає значення за замовчуванням; якщо воно залишено невизначеним, безліч дозволених методів визначається сервером у момент кожного запиту.

Content-Length

Поле Content-Length указує розм р т ла пов домлення, посланого сервером ув дпов дь на чи запит, у випадку запиту HEAD, розм р т ла пов домлення, що було б послане ув дпов дь на запит GET. Content-Length = "Content-Length" ":" 1*ЦИФРА Наприклад:

Content-Length: З495

Хоча це не обов'язково, але все-таки додаткам наст йно рекомендується використовувати це поле для анал зу розм р в переданого пов домлення, незалежно в д типу нформац ї, що м ститься в ньому. Для полючи Content-Length припустимим єбудь-яке целочислен значення б льше нуля. Content-Type

Поле заголовка Content-Type дентиф кує тип нформац ї вт л пов домлення, що посилається сторон , що одержує, чи, увипадку методу HEAD, тип нформац ї (середовища), що був би посланий, якщо використовувався метод GET.

Content-Type = "Content-Type" ":" cepedoeuseA-cepedu-muny-cepedoeusa

Типи середовищ визначен окремо. Приклад:

Content-Type: text/html; charset=ISO-8859-4

Поле Content-Type не має значення за замовчуванням. Last-Modified

Поле заголовка м стить дату  час, уяке, на думку сторони, що в дправляє, ресурс був останн й раз модиф кований. Семантика даного полючи визначена втерм нах, що описують, як одержувач повинний його інтерпретувати: якщо одержувач має копію ресурсу, що старше, ніж передана вполе Last-M odified дата, то копія повинна вважатися застарілої. Last-Modified = "Last-Modified" ":" I^P^ma Приклад використання:

Last-Modified: Tue, l5 Nov l994 l2:45:26 GMT

Точне значення цього полючи заголовка залежить в д реал зац ї сторони, що в дправляє, сут самого ресурсу. Для файл в, це може бути просто його час останньої модиф кац ї. Для шлюз в до баз даних, це може бути час останнього в дновлення даних убаз . Убудь-якому випадку, одержувач повинний турбуватися лише про результат - про те, що знаходиться вданому пол , - не турбуватися про те, як результат був отриманий. Тіло повідомлення

П д т лом пов домлення розум ється чи Запиту Зм сту-В дпов д в дпов дно. Т ло пов домлення, якщо воно присутнє, посилається в HTTP/l.0 чи запиті відповіді уформаті і кодуванні, обумовленими полями Утримування-Заголовка-зм сту.

ПoeiдoмлeнняA-Tiлa-noeiдoмлeння = *OCTET     OCTETpe будь-яшС 8-бimнuй cuмeoл)

Т ло пов домлення включається в запит, т льки якщо метод запиту має на уваз його наявн сть. Для специфікації HTTP/l.0 такими методами є POST і PUT. Загалом, на присутність тіла повідомлення вказує присутн сть таких пол в заголовка зм сту, як Content-Length /чи Content- Transfer-Encoding, у переданому запиті.

Що стосується пов домлень-в дпов дей, наявн сть т ла пов домлення ув дпов д залежить в д методу, що був використаний у запит ,  Статус-Коду. Ус в дпов д на запити HEAD не повинн містити тіло повідомлення, хоча наявність деяких полів заголовка повідомлення може вказувати на можливу присутність такого. Відповідно, відповіді "204 No Content", "З04 Not Modified", і "406 None Acceptable" також не повинн м стити всоб т ло пов домлення.