logo
Проектирование инт-прил / лекции / Проектирование инет приложений

Структура запроса (Request).

Стартовая строка запроса выглядит следующим образом:

Метод URI HTTP/Версия

Метод- это название запроса. Одно слово заглавными буквами. Наибольшее распространение имеют следующие методы:

GET- запросить содержимое указанного ресурса. Клиент может передавать параметры указанному ресурсу, перечисляя их после символа "?". Пример стартовой строки методаGETс передачей параметров на сервер:

GET /some_resource?param1=value&param2=value2 HTTP/1.1

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

HEAD - то же самое, что и GET, но само содержимое ресурса при этом сервером не передается, передаются только заголовки. Метод позволяет узнать, существует ли запрашиваемый ресурс на сервере. И если да - не менялось ли его содержимое со времени последнего запроса.

POST- применяется для передачи пользовательских данных (параметров) указанному ресурсу. При этом сами передаваемые параметры включаются в тело запроса. При помощи метода POST можно создать ресурс (например, загрузить файл на сервер). В этом случае сервер выдаст ответ 210 (Created) и в заголовке Location будет указан URI созданного ресурса. Метод POST идемпотентным не является, то есть многократное повторение POST с теми же параметрами может приводить к разным результатам.

PUT- загрузка содержимого запроса на указанный ресурс.

DELETE- удалить указанный ресурс.

URI(Uniform Resource Identifier) - путь к запрашиваемому ресурсу (документ, изображение, файл, службу, ящик электронной почты и т.д.) .

Версия- пара разделенной точкой цифр.

Заголовок запроса может иметь следующие поля:

Поля заголовка HTTP-запроса

Значение

Host

Доменное имя или IP -адрес узла, к которому обращается клиент

Referer

URL документа, который ссылается на ресурс, указанный в строке состояния

From

Адрес электронной почты пользователя, работающего с клиентом

Accept

MIME -типы данных, обрабатываемых клиентом. Это поле может иметь несколько значений, отделяемых одно от другого запятыми. Часто поле заголовка Accept используется для того, чтобы сообщить серверу о том, какие типы графических файлов поддерживает клиент

Accept-Language

Набор двухсимвольных идентификаторов, разделенных запятыми, которые обозначают языки, поддерживаемые клиентом

Accept-Charset

Перечень поддерживаемых наборов символов

Content-Type

MIME -тип данных, содержащихся в теле запроса (если запрос не состоит из одного заголовка)

Content-Length

Число символов, содержащихся в теле запроса (если запрос не состоит из одного заголовка)

Range

Присутствует в том случае, если клиент запрашивает не весь документ, а лишь его часть

Connection

Используется для управления TCP -соединением. Если в поле содержится Close, это означает, что после обработки запроса сервер должен закрыть соединение. Значение Keep-Alive предлагает не закрывать TCP -соединение, чтобы оно могло быть использовано для последующих запросов

User-Agent

Информация о клиенте

В текущей версии протокола (HTTP/1.1) в заголовках запроса обязательно должен присутствовать параметр Host, что позволяет организовать виртуальный хостинг. Выражаясь более простым языком, достичь такого состояния, когда на одном физическом IP-адресе одновременно функционируют несколько Web-серверов, не мешаясь друг другу и не пересекаясь.

Пример HTTP-запроса:

GET /thebook/page1.html HTTP/1.1

Host: www.some_library.ru

Поскольку у данного запроса нет тела, то заканчивается он - пустой строкой (см. выше).