Компьютерные сети. Принципы, технологии, протоколы (Олифер, Олифер) - страница 683

□ Долговременное соединение — передача в одном TCP-соединении нескольких объектов, причем время существования соединения определяется при конфигурировании вебслужбы.

□ Кратковременное соединение — передача в рамках одного ТСР-соединения только одного объекта.

Долговременное соединение, в свою очередь, может быть использовано двумя способами:

□ Последовательная передача запросов с простоями — новый запрос посылается только после получения ответа.

□ Конвейерная передача — это более эффективный способ, в котором следующий запрос посылается до прибытия ответа на один или несколько предыдущих запросов (напоминает метод скользящего окна). Обычно по умолчанию степень параллелизма устанавливается на уровне 5-10, но у пользователя имеется возможность изменять этот параметр при конфигурировании клиента.

В HTTP 1.1 по умолчанию применяются постоянные соединения и конвейерный режим. >75>

Формат НТТР-сообщений

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

Таблица 5.1. Форматы стартовых строк и заголовков
Обобщенная структура сообщенияНТТР-запросНТТР-ответ
Стартовая строка (всегда должна быть первой строкой сообщения; обязательный элемент)Формат запроса Метод/ URL HTTP/l.x. Пример: GET /books/ books.htm НТТР/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. И в запросе, и в ответе примера указана версия HTTP 1.1. Стартовая строка запроса включает в себя поле метода — это название операции, которая должна быть выполнена. Чаще всего в запросах используется метод GET, то есть запрос объекта. Именно он включен в наш пример запроса. Помимо этого метода в запросах протокол предусматривает и другие методы, такие как POST, который используется клиентом, например, для отправки электронной почты или в поисковых машинах, когда клиент запрашивает у сервера не определенный объект, а объекты, содержащие ключевые слова, помещенные в теле сообщения. Еще одним элементом стартовой строки является URL-ссылка на запрашиваемый объект — здесь это имя файла /books/books.htm.