![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Основные принципы обработки запросов и генерации ответов.
Запрос - это сообщение, посылаемое клиентом серверу. Первая строка этого сообщения включает в себя метод, который должен быть применен к запрашиваемому ресурсу, идентификатор ресурса и используемую версию протокола. Запрос = Простой-Запрос | Полный-Запрос Простой-Запрос = " GET" SP Запрашиваемый-URI CRLF Полный-Запрос = Строка-Статус *(Общий-Заголовок | Заголовок-Запроса | Заголовок-Содержания) CRLF [ Содержание-Запроса ] Строка Статус начинается со строки с названием метода, за которым следует URI-Запроса и использующаяся версия протокола. Строка Статус заканчивается символами CRLF. Строка-Статус = Метод SP URI-Запроса SP Версия-HTTP CRLF Метод В поле Метод указывается метод, который должен быть применен к ресурсу, идентифицируемому URI-Запроса. Названия методов чувствительны к регистру. Существующий список методов может быть расширен. Метод = " GET" | " HEAD" | " PUT" | " POST" | " DELETE" | " LINK" | " UNLINK" | дополнительный-метод Ответ (Response). После получения и интерпретации сообщения запроса, сервер отвечает сообщением HTTP ответа. Response = Status-Line *(general-header | response-header | entity-header) CRLF [ message-body ] Строка состояния (Status-Line). Первая строка ответа - это строка состояния (Status-Line). Она состоит из версии протокола (HTTP-Version), числового кода состояния (Status-Code) и поясняющей фразы (Reason-Phrase), разделенных символами SP. CR и LF не допустимы в Status-Line, за исключением конечной последовательности CRLF. Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF Код состояния и поясняющая фраза. Элемент код состояния (Status-Code) - это целочисленный трехразрядный код результата понимания и удовлетворения запроса. Эти коды полностью определены в разделе 10. Поясняющая фраза (Reason-Phrase) предназначена для короткого текстового описания кода состояния. Код состояния (Status-Code) предназначен для использования автоматами, а поясняющая фраза предназначена для живых пользователей. От клиента не требуется исследовать или отображать поясняющую фразу (Reason-Phrase). Первая цифра кода состояния определяет класс ответа. Последние две цифры не имеют определенной роли в классификации. Имеется 5 значений первой цифры: 1xx: Информационные коды - запрос получен, продолжается обработка. 2xx: Успешные коды - действие было успешно получено, понято и обработано. 3xx: Коды перенаправления - для выполнения запроса должны быть предприняты дальнейшие действия. 4xx: Коды ошибок клиента - запрос имеет плохой синтаксис или не может быть выполнен. 5xx: Коды ошибок сервера - сервер не в состоянии выполнить допустимый запрос. Поля заголовка ответа. Поля заголовка ответа (response-header fields) позволяют серверу передавать дополнительную информацию, касающуюся ответа, которая не может быть помещена в строку состояния Status-Line. Эти поля заголовка дают информацию о сервере и о дальнейшем доступе к ресурсу, указанному этим Request-URI. response-header = Age | Location | Proxy-Authenticate | Public | Retry-After | Server | Vary | Warning | WWW-Authenticate Объект (Entity). Сообщения запросов и ответов МОГУТ передать объект, если иное не установлено методом запроса или кодом состояния ответа. Объект состоит из полей заголовка объекта (entity-header) и тела объекта (entity-body), хотя некоторые ответы могут включать только заголовки объекта (entity-headers). Этот раздел относится как к отправителю, так и к получателю, то есть к клиенту или серверу, в зависимости от того, кто посылает, а кто получает объект.
|