Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR_1-7.doc
Скачиваний:
51
Добавлен:
27.03.2015
Размер:
824.83 Кб
Скачать

Взаимодействие типа клиент/сервер

Как и в других сетевых приложениях, в программах просмотра Web применяется модель взаимодействия типа клиент/сервер. После получения URL документа браузер становится клиентом, который обращается с запросом на получение документа к серверу, работающему на компьютере, указанном в URL. Затем браузер отображает документ для пользователя.

В отличие от сетевых приложений, в которых предусмотрено постоянное соединение между клиентом и сервером, при взаимодействии между Web – браузером и сервером соединение создается лишь на короткое время. Браузер устанавливает соединение, отправляет запрос и получает либо затребованный элемент данных, либо сообщение, что такого элемента не существует. Сразу после передачи документа или изображения соединение закрывается; клиент не остается подключенным к серверу.

Быстрое прекращение соединений вполне себя оправдывает в большинстве случаев, поскольку просмотр Web не характеризуется высокой степенью локализации связей. Пользователь может обратиться к Web-странице на одном компьютере, а затем немедленно проследовать по ссылке к Web-странице на другом компьютере. Однако слишком быстрое прекращение соединения может привести к ненужным издержкам в тех случаях, если браузер должен неоднократно обращаться к одному и тому же серверу для получения большого числа документов.

Передача документов Web и протокол http

При взаимодействии браузера с Web-сервером эти две программы выполняют протокол HTTP (HyperText Transfer Protocol – протокол передачи гипертекста). Назначение протокола HTTP состоит в том, что он позволяет браузеру запросить конкретный элемент данных, который затем отправляет ему сервер. Однако на практике с применением протокола HTTP связано много сложностей, поскольку сервер вместе с каждой передачей отправляет дополнительную информацию состояния, а браузер, согласно этому протоколу, может не только запрашивать, но и передавать информацию.

Запросы HTTP передаются в виде текста в кодировке ASCII. Протокол HTTP поддерживает четыре основных операции, которые могут быть указаны браузером при выполнении запроса:

  • Операция GET позволяет запросить конкретный элемент данных с сервера. Сервер возвращает заголовок, за которым следует информация состояния, пустая строка и затребованный элемент данных.

  • Операция HEAD позволяет запросить информацию о состоянии некоторого элемента. Сервер возвращает информацию состояния, не передавая копию самого элемента.

  • Операция POST служит для передачи данных на сервер. Сервер добавляет переданные данные к указанному элементу (например, добавляет сообщение к списку сообщений).

  • Операция PUT также позволяет передать данные на сервер. Однако сервер использует эти данные для замены указанного элемента.

При вводе пользователем URL или выборе ссылки браузер формирует запрос HTTP. В том или ином случае браузер передает запрос GET, в котором указан определенный элемент данных, и сервер возвращает запрашиваемый элемент. Запрос GET имеет следующую форму:.

GET item version CRLF

Здесь item обозначает URL затребованного элемента, version указывает версию HTTP (обычно 1.0 или 1.1), a CRLF обозначает символы CR (сокращение от carriage return — возврат каретки) и LF (сокращение от linefeed — перевод строки) кодировки ASCII.

Каждый ответ от сервера начинается с заголовка в кодировке ASCII. Первая строка заголовка содержит код состояния, который сообщает браузеру, успешно ли обработан сервером запрос. Если запрос был сформирован неправильно или затребованный в нем элемент недоступен, то код состояния позволяет выявить эту проблему. Например, сервер возвращает широко известный код состояния 404, если затребованный элемент не удалось найти. Успешно выполнив запрос, сервер возвращает код состояния 200; дополнительные строки заголовка предоставляют более полную информацию об элементе данных, такую как его длина, время последнего изменения и тип информационного наполнения. Пример заголовка HTTP приведен ниже.

НТТР/1.0 200 ОК

Date: Mon, 30 Oct 2000 01:22:22 GMT

Server: Apache/1.2.5

Last-Modified: Sat, 28 Oct 2000 01:03:37 GMT

ETag: "130fe-81-3883bbe9"

Content-Length: .129

Accept-Ranges: bytes

Connection: close,

Content-Type: text/plain

Код состояния 200 в первой строке указывает, что сервер успешно выполнил запрос; остальные строки содержат дополнительную информацию о затребованном элементе данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]