Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab3_http.doc
Скачиваний:
7
Добавлен:
13.08.2019
Размер:
108.03 Кб
Скачать

3.2. Структура запросов клиента

Запрашивающая программа-клиент (браузер) устанавливает связь с обслуживающей программой - сервер и посылает ей запрос, который представляет собой сообщение в виде текстовых строк, которое в общем случае состоит из следующих частей:

СТРОКА ЗАПРОСА

[РАЗДЕЛ ЗАГОЛОВКОВ]

[пустая строка]

[ТЕЛО ЗАПРОСА]

Дадим общую характеристику каждой части.

3.2.1. Строка запроса

Синтаксис строки запроса следующий:

Метод <пробел> URL-Запроса <пробел> Версия-HTTP <конец строки>

В поле Метод указывается метод, который должен быть применен к ресурсу, идентифицируемому URL-Запроса и может принимать одно из следующих значений:

Метод = "GET" | "HEAD" | "PUT" | "POST" | "DELETE" | "LINK" | "UNLINK"| дополнительный метод.

GET. Метод GET служит для получения любой информации, идентифицированной URL-Запроса. Если URL- Запроса ссылается на процесс, выдающий данные, в качестве ответа будут выступать данные, сгенерированные данным процессом, а не код самого процесса (если только это не является выходными данными процесса).

Тело запроса метода GET всегда пустое. При передаче входной информации в CGI-программы, входные данные присоединяются к URL ресурса в строке запроса (т.е. пары ключ-значение, представляющие собой введенные данные из формы, присоединяются к URL после символа "?"). Например:

GET http://stat.kar.net:88/cgi-bin/env.pl?month=Mar&day=24 HTTP/1.0

POST. Метод POST используется для запроса серверу, чтобы тот принял данные, включенные в тело запроса. По завершении обработки строки запроса и заголовков сервер передает тело запроса в программу, заданную в поле URL-Запроса.

PUT. Метод PUT запрашивает сервер о сохранении содержимого тела запроса под URL, равным URL-Запроса. Если URL-Запроса ссылается на уже существующий ресурс.

Тело-Запроса должно рассматриваться как модифицированная версия данного ресурса. Если ресурс, на который ссылается URL-Запроса не существует, и данный URL может рассматриваться как описание для нового ресурса, сервер может создать ресурс с данным URL. Если был создан новый ресурс, сервер должен информировать направившего запрос клиента через ответ с кодом статуса "201 Created". Если существующий ресурс был модифицирован, должен быть послан ответ "200 OK", для информирования клиента об успешном завершении операции. Если ресурс с указанным URL не может быть создан или модифицирован, должно быть послано соответствующее сообщение об ошибке.

Фундаментальное различие между методами POST и PUT заключается в различном значении поля URL-Запроса. Для метода POST данный URL указывает ресурс, который будет управлять информацией, содержащейся в теле запроса, как неким придатком. Ресурс может быть обрабатывающим данные процессом, шлюзом в какой-нибудь другой протокол, или отдельным ресурсом, допускающим аннотации. В противоположность этому, URL для запроса PUT идентифицирует информацию, содержащуюся в теле запроса. Использующий запрос PUT точно знает какой URL он собирается использовать, и получатель запроса не должен пытаться применить этот запрос к какому-нибудь другому ресурсу.

DELETE. Метод DELETE используется для удаления ресурсов, идентифицированных с помощью URI-Запроса. Результаты работы данного метода на сервере могут быть изменены с помощью человеческого вмешательства (или каким-нибудь другим способом). В принципе, клиент никогда не может быть уверен, что операция удаления была выполнена, даже если код статуса, переданный сервером, информирует об успешном выполнении действия. Тем не менее, сервер не должен информировать об успехе до тех пор, пока на момент ответа он не будет собираться стереть данный ресурс или переместить его в некоторую недостижимую область.

LINK. Метод LINK устанавливает взаимосвязи между существующим ресурсом, указанным в URI-Запроса, и другими существующими ресурсами. Отличие метода LINK от остальных методов, допускающих установление ссылок между документами, заключается в том, что метод LINK не позволяет передавать в запросе Тело-Запроса, и в том, что в результате работы данного метода не создаются новые ресурсы.

UNLINK. Метод UNLINK удаляет одну или более ссылочных взаимосвязей для ресурса, указанного в URI- Запроса. Эти взаимосвязи могут быть установлены с помощью метода LINK или какого-нибудь другого метода, поддерживающего заголовок "Link". Удаление ссылки на ресурс не означает, что ресурс прекращает существование или становится недоступным для будущих ссылок.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]