Сообщение-запрос

Типичное сообщение-запрос протокола HTTP выглядит следующим образом:

GET /somediг/page.html HTTP/1.1
Host: www.someschool.edu
Connection: close
User-agent: Mozilla/4.0
Accept-language:fr

Это сообщение, несмотря на свою простоту, весьма наглядно демонстрирует формат, используемый в HTTP. Как можно видеть, сообщение представляет собой совокупность вполне понятных человеку текстовых символов в кодировке ASCII. Сообщение состоит из пяти строк, каждая из которых оканчивается парой символов для перехода на новую строку (возврат каретки и перевод строки), а последняя строка — дополнительной парой указанных символов. В общем случае число строк сообщения может быть как больше, так и меньше пяти (вплоть до одной строки).

Первая строка называется строкой запроса, а следующие строки — строками заголовка. Строка запроса содержит три поля: поле метода, поле URL и поле версии HTTP. Поле метода может принимать различные значения, например GET, POST и HEAD. Метод GET является наиболее часто используемым методом протокола HTTP и применяется в случаях, когда требуемый объект идентифицируется URL-адресом. Приведенное сообщение содержит URL-адрес /somedir/page.html. Поле версии HTTP не требует дополнительных комментариев и в нашем примере содержит запись НТТР/1.1.

Теперь рассмотрим строки заголовка. Строка Host: www.someschool.edu содержит адрес хоста, на котором находится объект. С помощью строки Connection: close браузер сообщает серверу о том, что не следует использовать постоянное соединение, и установленное ТСР-соединение должно быть закрыто сразу после передачи требуемого объекта. Обратите внимание, что при этом браузер поддерживает версию 1.1 протокола HTTP. В строке The User-agent: указан агент пользователя, то есть тип браузера, сгенерировавшего запрос. В данном случае это браузер Mozilla 4.0 фирмы Netscape. Строка User-agent: является весьма полезной, поскольку на сервере могут храниться несколько версий одного документа, предназначенных для разных браузеров и адресуемых одним URL-адресом. Наконец, строка Accept-language: указывает на то, что пользователю по возможности должна быть выслана версия документа на французском языке (в случае ее наличия на сервере); в противном случае будет выслана версия документа на языке, заданном по умолчанию. Строка Accept-language: является одной из множества заголовочных строк согласования данных, предусмотренных протоколом HTTP.

Рассмотрев конкретный пример, обратимся теперь к общему формату запроса, представленному на рис. 2.6. Как можно видеть, пример вполне соответствует этому формату; тем не менее после строк заголовка и пустой строки формат сообщения предусматривает наличие тела сообщения. Тело сообщения остается пустым при использовании метода GET и заполняется при использовании метода POST. Метод POST применяется в случаях, когда пользователь заполняет формы, например вводит слово для поиска в поисковой системе. Заполнение форм приводит к генерации запроса, а содержимое web-страницы зависит от данных, введенных в формы. Итак, если поле метода содержит значение POST, то в теле сообщения находятся данные, введенные в формы.

26.png
Необходимо отметить, что в запросах, создаваемых с помощью форм, не всегда применяется метод POST. Напротив, HTML-формы часто используют метод GET и подставляют введенные значения в URL-адрес требуемой страницы. К примеру, если пользователь ввел в формы два значения, monkeys и bananas, то запрашиваемый с помощью метода GET URL-адрес будет иметь вид _www.somesite.com/ani-malsearch?monkeys&bananas. Вполне вероятно, что вы нередко встречали подобные конструкции, путешествуя в web.

Метод HEAD схож с методом GET. При получении запроса с методом HEAD сервер формирует ответ, однако не осуществляет пересылку объекта. Разработчики приложений часто используют метод HEAD для отладки ошибок.

В спецификации НТТР/1.0 указаны лишь три метода: GET, POST и HEAD. Спецификация НТТР/1.1 располагает более широким набором методов, в который, кроме перечисленных выше, входят PUT и DELETE. Метод PUT часто применяется в средствах web-публикаций и позволяет поместить объект с заданным URL-адресом на web-сервер, а метод DELETE — удалить объект, расположенный на web-сервере.

Данная статья "Сообщение-запрос" размещена на сайте Компьютерные сети и многоуровневая архитектура интернета (conlex.kz) в ознакомительных целях.

Уточнения, корректировки и обсуждения статьи "Сообщение-запрос" - под данным текстом, в комментариях.

Ответственность, за все изменения, внесённые в систему по советам данной статьи, Вы берёте на себя.

Копирование статьи "Сообщение-запрос", без указания ссылки на сайт первоисточника Компьютерные сети и многоуровневая архитектура интернета (conlex.kz), строго запрещено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *