Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Статус-Код и пояснение к нему




Код состояния (Статус-Код) представляет собой трехзначный целочисленный цифровой код, идентифицирующий результат попытки интерпретации и удовлетворения запроса.

Фраза-Об'яснение, следующая за ним, предназначена для краткого текстового описания Статус-Кода. Статус-Код нацелен на то, чтобы его использовала машина, а Фраза-Об'яснение предназначена для человека. Клиент не обязан исследовать и выводить на экран Фразу-Об'яснение.

Первая цифра Статус-Кода предназначена для определения класса ответа. Последние две цифры не выполняют никакой категоризирующей роли.

Существует 5 значений для первой цифры Статус-Кода:

1. 1xx: Информационный - Не используется, но зарезервирован для использования в будущем

2. 2xх: Успех - Запрос был полностью получен, понят, и принят к обработке.

3. 3xx: Перенаправление - Клиенту следует предпринять дальнейшие действия для успешного выполнения запроса. Необходимое дополнительное действие иногда может быть выполнено клиентом без взаимодействия с пользователем, но настоятельно рекомендуется,

чтобы это имело место только в тех случаях, когда метод, использующийся в запросе безразличен (GET или HEAD).

4. 4xx: Ошибка клиента - Запрос, содержащий неправильные синтаксические конструкции, не может быть успешно выполнен. Класс 4xx предназначен для описания тех случаев, когда ошибка была допущена со стороны клиента. Если клиент еще не завершил запрос, когда он получил ответ с Статус-Кодом- 4xx, он должен немедленно прекратить передачу данных серверу. Данный тип Статус-Кодов применим для любых методов, употребляющихся в запросе.

5. 5xx: Ошибка Сервера - Сервер не смог дать ответ на корректно поставленный запрос. В этих случаях 6. сервер либо знает, что он допустил ошибку, либо не способен обработать запрос. За исключением ответов на запросы HEAD, сервер посылает описание ошибочной ситуации и то, является ли это состояние временным или постоянным, в Содержание-Ответа. Данный тип Статус-Кодов применим для любых методов, употребляющихся в запросе.

Отдельные значения Статус-Кодов и соответствующие им Фразы-Об'яснения приведены ниже. Данные Фразы-Об'яснения только рекомендуются – они могут быть замещены любыми другими фразами, сохраняющими смысл и допускающимися протоколом.

 

Статус-Код = "200" ; OK |

"201" ; Created |

"202" ; Accepted |

 "203" ; Provisional Information |

"204" ; No Content |

"300" ; Multiple Choices |

"301" ; Moved Permanently |

"302" ; Moved Temporarily |

"303" ; Method |

"304" ; Not Modified |

"400" ; Bad Request |

"401" ; Unauthorized |

"402" ; Payment Required |

"403" ; Forbidden |

"404" ; Not Found |

"405" ; Method Not Allowed |

"406" ; None Acceptable |

"407" ; Proxy Authentication Required |

"408" ; Request Timeout |

"409" ; Conflict |

"410" ; Gone |

"500" ; Internal Server Error |

"501" ; Not Implemented |

"502" ; Bad Gateway |

"503" ; Service Unavailable |

"504" ; Gateway Timeout |

От HTTP приложений не требуется понимание всех Статус-Кодов, хотя такое понимание, очевидно, желательно. Тем не менее, от приложений требуется способность распознавания классов Статус-Кодов (идентифицирующихся первой цифрой) и отношение ко всем Статус-Кодам статуса ответа, как если бы они были эквивалентны Статус-Коду x00.

 

Блок заголовков HTTP-ответа

 

Информация заголовка: содержит данные о самом сервере и затребованном ресурсе. Завершает заголовок пустая строка.

 

Синтаксис строки блока заголовков такой же как в HTTP-запросах:

Имя заголовка: значение

Перечень возможных заголовков в ответе сервера достаточно широк. Приведем некоторые из них.

 

Date. Указывает на время создания ответного сообщения на полученный запрос.

Форматы (допускаемые) задания даты и времени:

Date: Sat, 01 Jan 1999 00:01:01 GMT - рекомендуемый формат

Date: Sat Jan 1 00:01:01 1999 - (формат ANSI)

Date: Saturday, 01-Jan-99 00:01:01 GMT

Server. Указывает имя и версию сервера, сведения о программном обеспечении, используемом сервером для обслуживания запроса.

Пример:

Server: Аpache/1.1.1 ioweb/1.22 Cern/3.0 lib www/2.17

Server: NCSA/1.0

Last-Modified. Определяет дату и время последующего изменения файла. Формат указания даты и времени такой же как в заголовке Date.

Last-Modified: Sat Oct 14  00:01:01 2006

Content-Type. Определяет media-тип подтип для тела содержимого. Задается тип в формате тип/подтип, например text/html. Существует большее количество типов сред передачи и методов описания содержимого. По мере появления новых типов они зарегистрированы комитетом присвоения номеров Internet, поэтому использование не зарегистрированного типа может привести к непредсказуемым результатам. Сервер должен вернуть media-типы соответствующие предпочтительным форматами клиента.

Пример:

Content-Type: text/html

Content-Type: text/plain

 

Content-Length. Задает объем данных (в байтах) в переданном теле содержимого. Для запросов, имеющих динамический характер, размер содержимого точно указать нельзя. В этом случае этот заголовок опускается.

Allow. Перечисляет (через ",") разрешенные методы доступа к ресурсу.

Пример:

Allow: GET, HEAD

Если указанный в запросе метод не применим к ресурсу в ответе сервера указывается код 405 (Method not allowed (использование метода запрещено))

Content-Encoding. Определяет тип кодирования передаваемого ресурса. Возможные значения: gzip, compress.

Пример:

Content-Encoding: хgzip

- указывает, что ресурс является заархивированным файлом в формате zip.

Допускается задание нескольких схем кодирования, разделенных запятой и расположенных в том порядке, в котором применялись к исходным данным.

Expires. Задает дату и время, после которого ресурс считается устаревшим. После указанной даты документ можно изменять, а также удалять. Дата и время задаются так же как в заголовке Date.

Пример:

Expires: Mon Oct 16 10:04:01 2006

Тело HTTP-ответа

 

Наличие тела в HTTP-ответе зависит от метода, который был использован в запросе, и Статус-Кода. Все ответы на запросы HEAD не должны содержать тело сообщения, хотя наличие некоторых полей заголовка сообщения может указывать на возможное присутствие такового. Соответственно, ответы "204 No Content", "304 Not Modified", и "406 None Acceptable" также не должны включать в себя тело HTTP-ответа.

Тело ресурса отделяется пустой строкой от блока заголовков и подразумевает ресурс, к которому был сгенерирован запрос. (текстовый файл, видеоклип, архив из сжатых файлов, выполняемая программа и т.д.) Тело ресурса пересылается вместе с HTTP-ответом, если этого требует метод запроса и в этом случае в ответном запросе обязательно должно быть включено поле Content-Length.










Последнее изменение этой страницы: 2018-06-01; просмотров: 158.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...