Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Формат HTTP-сообщений



В протоколе HTTP все сообщения состоят из текстовых строк. Сообщения как запросов, так и ответов имеют единую обобщенную структуру из трех частей: обязательной стартовой строки, а также необязательных заголовков и тела сообщения. В табл. 5.1 приведены форматы и примеры стартовых строк и заголовков для запросов и ответов.

Как видно из таблицы, запросы и ответы имеют разные форматы стартовой строки. Каждая из них состоит из трех элементов, включающих поле версии протокола HTTP. И в запросе, и в ответе примера указана версия HTTP 1.1. Стартовая строка запроса включает в себя поле метода — это название операции, которая должна быть выполнена. Чаще всего в запросах используется метод GET, то есть запрос объекта. Именно он включен в наш пример запроса. Помимо этого метода в запросах протокол предусматривает и другие методы, такие как POST, который используется клиентом, например, для отправки электронной почты или в поисковых машинах, когда клиент запрашивает у сервера не определенный объект, а объекты, содержащие ключевые слова, помещенные в теле сообщения. Еще одним элементом стартовой строки является URL-ссылка на запрашиваемый объект — здесь это имя файла /books/books.htm.

Таблица 5.1. Форматы стартовых строк и заголовков

Обобщенная структура сообщения HTTP-запрос HTTP-ответ
Стартовая строка (всегда должна быть первой строкой сообщения; обязательный элемент) Формат запроса Метод/ URL HTTP/l.x. Пример: GET /books/ books.htm HTTP/1.1 Формат ответа: HTTP/l.x Кодсостояния Фраза. Пример: НТТР/1.0 200 ОК
Заголовки (следуют в произвольном порядке; могут отсутствовать) Заголовок о DNS-имени компьютера, на котором расположен веб-сервер. Пример: Host: www.olifer.co.uk Заголовок о времени отправления данного ответа. Пример: Date: 1 Jan 2009 14:00:30
Заголовок об используемом браузере. Пример: User-agent: Mozilla/5.0 Заголовок об используемом веб-сервере. Пример: Server: Apache/1.3.0 (Unix)
Заголовок о предпочтительном языке. Пример: Accept-language: ru Заголовок о количестве байтов в теле сообщения. Пример: Content-Length: 1234
Заголовок о режиме соединения. Пример: Connection: close Заголовок о режиме соединения. Пример: Connection: close
Пустая строка
Тело сообщения (может отсутствовать) Здесь могут быть расположены ключевые слова для поисковой машины или страницы для передачи на сервер Здесь может быть расположен текст запрашиваемой страницы

В стартовой строке ответа, помимо уже упоминавшегося указания на версию протокола HTTP, имеется поле кода состояния и поле фразы для короткого текстового сообщения, поясняющего данный код пользователю.

В настоящее время стандарты определяют пять классов кодов состояния:

1хх — информация о процессе передачи;

2хх — информация об успешном принятии и обработки запроса клиента (в таблице в примере стартовой строки ответа приведен код и соответствующая фраза 200 О К со­общает клиенту, что его запрос успешно обработан);

3xx — информация о том, что для успешного выполнения операции нужно произвести следующий запрос по другому URL-адресу, указанному в дополнительном заголовке Location;

4xx — информация об ошибках на стороне клиента (читатель наверняка не раз сталкивался с ситуацией, когда при указании адреса несуществующей страницы браузер выводил на экран сообщение 404 Not Found);

5хх — информация о неуспешном выполнения операции по вине сервера (например, сообщение 505 http Version Not Supported говорит о том, что сервер не поддерживает версию HTTP, предложенную клиентом).

Среди кодов состояния имеется код 401, сопровождаемый сообщением authorization required. Если клиент получает такое сообщение в ответ на попытку доступа к странице или объекту, это означает, что доступ к данному ресурсу ограничен и требует авторизации 1 пользователя. Помимо поясняющей фразы сервер помещает в свой ответ дополнительный заголовок www-Authenticate:<...>, который сообщает клиенту, какую информацию он должен направить серверу для того, чтобы процедура авторизации могла быть выполнена. Обычно это имя и пароль. Веб-клиент с момента получения такого ответа сервера начинает добавлять во все свои запросы к ресурсам данного сервера дополнительный заголовок Authorization:<имя, пароль>, который содержит информацию, необходимую для авторизации доступа.





Дата публикования: 2014-10-25; Прочитано: 799 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...