Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Опорный конспект.docx
Скачиваний:
9
Добавлен:
01.07.2025
Размер:
587 Кб
Скачать
☆

Протокол http

WWW-клиент-серверная технология, основанная на протоколе http. В простейшем случае на запрос клиента сервер предоставляет некоторую информацию, называемую контектом. В более сложной ситуации в процессе передачи данных могут участвовать несколько промежуточных объектов. Каждый контект( документ) определяется указателем на ресурс– URL или URI.

URL ресурса, доступного через протокол http выглядит следующим образом [1]:

протокол

имя пользователя

пароль пользователя

Доменное имя www-сервера

Путь к файлу

TCP- порт сервера

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

аргументы запроса

http://

user:

password

@www.server:

port

/path

#fragment

&query

Не все поля могут присутствовать в запросе, как правило, обязательное поле www.server через DNS преобразуется в IP-адрес по которому происходит соединение.

Протокол HTTP

HTTP-прикладной клиент-серверный протокол, работающий поверх TCP, без сохранения состояния. То есть запрос от клиента является абсолютно самостоятельной единицей не связанной ни с запросами этого или других клиентов. Рассмотрим стандартный запрос клиента к серверу:

  1. Передача и прием запроса от клиента к серверу.

  2. Разбор URI, определение имени запрошенного файла, виртуальный путь преобразует­ся в реальный.

  3. 'Разбор заголовков HTTP-запроса.

  4. Осуществление контроля доступа путем анализа параметров запроса, которые могут применяться с дополнительными модулями:

    • аутентификация – установление пользователя, от чьего имени HTTP-браузер произвел запрос;

    • авторизация— определение, имеет ли право пользователь, прошедший аутентификацию производить данный запрос.

  5. Определение типа запрашиваемого документа (файл, подлежащий просмотру, CGI-npoграмма, файл с директивами SSI, файл со встроенным кодом и т., а также язык документа, кодировка символов).

  6. Генерация ответа. На этой стадии извлекаются или генерируются в результате работы программы файлы или процедуры-обработчика. Формируемый HTTP-ответ возвращается клиенту. Если запрос не может быть обслужен, сервер возвращает клиенту ответ с кодом ошибки.

  7. Протоколирование. На этой стадии в журналы аудита заносятся записи об обслуживании запроса.

  8. Освобождение ресурсов: памяти и файлов и т. п.

В процессе TCP соединения сервер и клиент обмениваются запросами–HTTP- сообщениями, состоящими из текстовых заголовков, пустой строкой, отделяемой данные от заголовка и собственно данных. Формат http-заголовка запроса выглядит следующим образом [1]:

Строка запроса (1 строка)

метод

URI

Протокол/версия

Заголовки запроса (1 и более строк)

Заголовки данных (1 и более строк)

Пустая строка

Данные

Первая строка запроса необходима для определения метода запроса к документу, которые бывают следующего вида:

get

Запрос документа, указанного в поле URI

Head

Выяснение характеристик документа, без передачи содержания (размер, дата модификации, тестирование ссылок)

Post

Пересылка данных на сервер с помощью форм

Options

Запрос списка параметров

Put

Delete

Управление документами расположенными на сервере

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

Host

Доменное имя сервера, к которому обращается клиент

Accept

Тип данных, которые клиент может принять в ответ на свой запрос. Используется если сервер может предоставить один и тот же документ в различных форматах

Accept-Charset

Кодировка символов в запрашиваемом документе. Несколько кодировок перечисляются через запятую

Accept-Encoding

Возможность передачи документа в сжатом виде

Accept-Language

Язык документа, если сервер предоставляет документ на разных языках

User-Agent

Тип браузера клиента (Netscape, Explorer)

Referer

Указание документа, в котором находилась ссылка на запрашиваемый документ

Authorization

Аутентификация

Connection

Указание на соединение, которое поддерживается некоторое время для последующих запросов

If-Modified-Since

Сервер вернет запрос если метка времени последней модификации устарела

Range

Запрос части документа

Четвертая строка запроса необходима для передачи данных как от пользователя, так и от сервера, как правило, используется при передачи заполненных пользователем форм:

Content-Type

Необходим для определения интерпретации браузером данных, передаваемых пользователю

Last- Modified

Время последней модификации

Expires

Время истечение срока годности

ETag

Идентификатор, присеваемый документу, изменение документа, приводит к изменению идентификатора

Content-Lengh

Размер данных в байтах

Content - Encoding

Метод передачи данных в сжатом виде

Content- Range

Передача документа по частям, с номерами первого/последнего байта и общей длины документа

На запрос клиента сервер присылает ответ формат заголовка которого представлен [1]:

Статусная строка (1 строка)

Протокол/версия

код

статус

Заголовки ответа (1 и более строк)

Заголовки данных (1 и более строк)

Пустая строка

Данные

Статусная строка содержит код результата обработки запроса в виде трехзначного числа, и статуса- текстовой интерпретации кода, удобной для чтения пользователем.

Коды подразделятся на группы в зависимости от первой цифры:

1**- промежуточные информационные сообщения;

2**-успешная обработка запроса;

3**- для получение документа требуются дополнительные действия со стороны пользователя;

4**-запрос является ошибочным;

5**-запрос не обслужен из-за ошибки пользователя

Вторая строка ответа необходима для передачи параметров сервера, которые могут быть следующими:

Server

Тип, версия и дополнительные характеристики сервера (Apache/ 1.3.6 rus)

Data

Дата и время ответа

Accept-Range

Возможность выдачи документа по частям

Authorization

Аутентификация

Location

Новый адрес запрошенного документа, возвращается с кодом об ошибке 301, 302

Connection

Состояние соединение

Allow: Get,Head,Post

Перечисление методов, поддерживаемых сервером

Строка данных аналогична описанной в заголовке запроса.