Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В протоколе 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; Прочитано: 848 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!