Заголовок вывода сценария.
Как правило, вывод сценария интерпретируется сервером и посылается пользователю. Информация, позволяющая броузеру выяснить, какого типа файл идет к нему по сети, поступает до получения самого файла и называется заголовком. Поскольку сервер не может создать заголовок, сценарий сам должен обеспечивать отправку соответствующего заголовка. Таким образом, помимо собственно результатов обработки, сценарий должен поместить в выходной поток и корректный заголовок. Он состоит из строки состояния и затем полей ответа: общий заголовок (General-Header) и заголовок тела сообщения (Entity-Header), а также заголовок ответа (Response-Header).
Вывод начинается с маленького заголовка. Он содержит текстовые строки, в том же формате, как и в HTTP заголовке, и завершается пустой строкой (содержащей символ перевода строки). Любые строки заголовка, не являющиеся директивами сервера, посылаются непосредственно пользователю. В настоящий время, CG1 спецификация определяет три директивы сервера.
Имя | Пояснение |
Content-type | MIME-тип возвращаемого документа. |
Location | Это поле используется в случае, когда необходимо указать серверу, что возвращается не сам документ, а ссылка на него. Тогда сервер передает пользователю указание на перенаправление запроса. |
Status | Задает серверу НТТР строку-статус, которая будет послана клиенту. Формат: nnn xxxxx, где nnn - 3-х цифровой статус-код, и ххххх строка причины. |
Наиболее интересная информация содержится в строке состояния. Строка состояния имеет следующий формат: HTTP/version - версия, Status-Code - трехзначный код статуса идентифицирующий результат и Status-Phrase - текстовая фраза, поясняющая код. Код статуса используется броузером, а текстовая фраза предназначена для пользователя.
Первая цифра кода статуса предназначена для определения класса ответа.
Существует пять катеогрий, определяемых первой цифрой кода:
1) 1хх: пока не используется, зарезервирован для использования в будущем.
2) 2хх: успех - запрос был полностью получен, понят и принят к обработке
3) Зхх: перенаправление - пользователю следует предпринять дальнейшие действия для успешного выполнения запроса.
4) 4хх: ошибка пользователя - запрос не может быть успешно обработан. Если пользователь еще не завершил запрос на момент получения ответа с кодом 4хх, то он должен немедленно прекратить передачу данных серверу.
5) 5хх: ошибка Web-сервера - сервер не смог ответить на корректный запрос. Сервер посылает описание ошибочной ситуации и то, является ли это состояние временным или постоянным, в теле ответа.
Поясняющие текстовые фразы могут быть замещены любыми другими фразами, сохраняющими смысл и допускающимися протоколом.
В следующей таблице перечислены коды ответов HTTP.
Код статуса | Значение |
ок | |
Успешная команда post | |
Запрос принят | |
Запрос get или HEAD выполнен | |
Запрос выполнен но нет содержимого | |
Ресурс обнаружен в нескольких местах | |
Ресурс удален навсегда | |
Ресурс отсутствует временно | |
Ресурс был изменен | |
Плохой запрос от клиента | |
Неавторизованный запрос | |
Необходима оплата за ресурс | |
Доступ запрещен | |
Ресурс не найден | |
Метод не применим для данного ресурса | |
Недопустимый тип ресурса | |
Ресурс недоступен | |
Внутренняя ошибка сервера | |
Метод не выполнен | |
Неисправный сценарий либо сервер перегружен | |
Сервер недоступен/тайм-аут сценария | |
Вторичный сценарий/тайм-аут сервера |
Директива Status позволяет CGI-сценарию вернуть сообщение о состоянии обработки. Если эта директива не задана, то сервер подразумевает 200 Ok.
Пример: