Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сети ЭВМ лекции.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
354 Кб
Скачать
☆

Протокол http

HTTP (Hyper Text Transfer Protocol)

В 1972 году было предложено совместить гипертекст с Интернетом.

Рассмотрим структуры http запроса:

Method Request-URL HTTP-Version

[Generate Header]

Date

Pragma

[Request Header]

Authorization

From:

If-Modified

Refer:

Accept:

User-Agent:

[Entity-Header]

Allow:

Content-Encoding

Content-Type

Content-Length

Exiris:

Last-Modified

[Entity-Body]

Каждая страница в протоколе определяется по унифицированному указателю ресурсов URL. URL имеет следующую структуру:

<схема://><доменное имя> <Номер порта>:/<путь к файлу>?<параметры>

Сема: определяет тип ресурса (http:// ftp:// smtp:// txt://)

Доменное имя: все знают 

Путь к файлу: здесь не допускается пробел, вместо него используется &.

Метод содержит идентификатор метода обращения к http серверу, метод определяет состав и структуру остальных заголовков запроса.

Метод Get – запрашивает инф-цию о ресурсе, расположенному о заданному URL. Данный метод не имеет тела запроса. Все параметры передаются в первой строке.

telnet в командной строке и доменное имя, например google.ru Get/ (на экзамен)

Метод Head – аналогичен Get за исключением того, что сервер возвращает только заголовок ответа. Этод метод используется для тестирования доступа к ресурсу.

Метод Put – используется, когда клиент желает сохранить исходные данные на сервере, этот метод запрещен для большинства виртуальных каталогов.

Метод Post – используется для передачи клиентом на сервер запроса какого-либо ресурса, отличие от предыдущего – параметры передаются в теле запроса. При доступе к серверным web приложениям этот метод предпочтительней предыдущего, т.к. снимает длину передаваемых параметров.

Метод Delete – используется для удаления ресурса, определяемого URL, обычно все виртуальные каталоги запрещают этот метод.

HTTP-Version – версия протокола, записывается в виде HTTP/1.1

Рассмотрим поля общего заголовка General Header. Эти поля используются, как в заголовке запроса, так и в заголовке ответа.

Date – Определяет время построения запроса

Pragma – Используется для установки спец директив для участников запроса (no-cash – не кэшировать запрос и ответ).

GET/main.doc.html HTTP/1.C

Date: Wed, 21, Nov 2012 05:10:30 GMT

Pragma: no-cash

Request Header – заголовок запроса

Authorization – авторизация, содержит аутотентификационные данные пользователя, обычно запросы этого поля не кэшируются.

From – Может содержать e-mail отправителя. Оычно это поле используется сервером для формирования журнала заходов на сервер и рассылки празднцичных поздравлений наиболее активным пользователям.

If-Modified-Since – используется полем Get, если запрашиваемый ресурс не изменялся с момента, указанного в этом параметре, то данный ресурс не возвращается, возвращается только его заголовок.

Refer – содержит URL предшествующего ресурса, этот параметр может использовать администратор сервера для выявления попыток атаки.

Accept – Появилось с версии http/4.0 и предписывает отвечающему серверу использовать только указанные форматы данных.

Accept: text/html

Accept: image/gif

User-Agent – содержит информацию о ПО клиента.

Entity-Header – содержит информацию о структуре и формате тела запроса.

Allow – содержит список методов поддерживаемых ресурсов (get, post, head)

Content-Encoding – содержит идентификатор дополнительной кодировки ресурса, например,

MIME

x-qzip

Content-Type – содержит тип ресурса и таблицу кодировки ресурса.

Text/html;charset=koi-8

Content-Length – длина тела сообщения

Expires – используется в механизме кэширования для удаления устаревших ресурсов. Содержит дату срока окончания ресурса.

Last-Modified – содержит дату и время последнего изменения ресурса.

Структура http-Ответа.

HTTP-Version State-Code Reason-Phrase

[General Header]

[Responce-Header]

Location:

Server:

WWW:Authentification:

[Entuty-Header]

[Entity-Body]

Первая строка ответа начинается с версии протокола.

State-Code – код состояния, обычно в большинстве протоколов прикладного уровня, используется число состоящее из 3-х цифр. 1: определяет вид ошибки, а 2,3: поясняют первую. 11 – временный предварительный ответ. 101 – сервер понимает запрос клиента и желает его выполнить, если протокол программы будет изменен на тот, который указан в заголовке сообщения.

2ХХ – успешное выполнение запроса. 200 – okey.

3ХХ – перенаправление. 301 – ресурс перенесен на другой сервер.

4ХХ – ошибка носит временный характер и может быть исправлена в текущей сессии, считается, что эта ошибка со стороны киента.

5ХХ – код ошибки сервера, они не могут быть исправлены в текущей сессии.

Reason-Phrase – Поясняющая фраза.

Location – содержит полный URL запроса, поле используется, когда ресурс перемещен на другой сервер и здесь указывается поле другого сервера.

Server – содержит спецификацию ПО сервера, отвечающего на запрос.

WWW:Authentification – содержит параметры схемы и пространство аутентификации, например

WWW – Authentificate: Basic realm = “Hello” данные находятся в зашифрованной области, для доступа к этим данным надо указать логин и пароль (method base64 три восьмибитовых слова разбиваются на четыре шетсибитовых и каждое из этих слов передается в отдельном байте).