- •Введение
- •1. Применение информационных сетей
- •1.1. Сеть предприятия
- •1.2. Домашняя сеть
- •1.3. Всемирная паутина
- •1.4. Общение
- •1.5. Интерактивные развлечении
- •2. Классификация информационных сетей
- •2.1. По размеру сети
- •2.2. По типу топологии сети
- •2.3. По типу функционального взаимодействии
- •2.4. По тину технологии передачи
- •2.5. По тину среды передачи
- •2.6. По скорости передачи
- •3. Эталонные модели сети
- •3.1. Протокол и стек протоколов
- •3.2. Эталонная модель osi
- •1. Физический уровень
- •2. Канальный уровень
- •3. Сетевой уровень
- •4. Транспортный уровень
- •5. Сеансовый уровень
- •6. Уровень представления
- •7. Прикладной уровень
- •3.3. Эталонная модель tcp/ip
- •3.4. Гибридная эталонная модель
- •4. Сетевые устройства
- •4.1. Сетевые карты
- •4.2. Пассивные сетевые устройства
- •4.3. Активные сетевые устройства
- •5. Линии и каналы связи
- •5.1. Кабельные линии связи
- •5.2. Беспроводные линии связи
- •6. Базовые сетевые технологии
- •6.1. Технология Ethernet
- •62. Технология Token Ring
- •7. Адресация в информационных сетях
- •7.1. Мас-адрес
- •7.2. Ip-адрес
- •Ip-адрес:
- •7.3. Система доменных имен
- •It.Bstu.Ru
- •7.4. Протокол dhcp
- •8. Объединение сетей
- •8.1. Объединение сетей с помощью мостов
- •8.2. Объединение сетей с помощью маршрутизаторов
- •9. Транспортные протоколы тср/iр
- •9.1. По pi ы
- •92. Протокол udp
- •9.3. Протокол tcp
- •10. Протоколы прикладного уровня тсрлр
- •10.1. Протокол ftp
- •10.2. Протокол http
- •11. Безопасность в информационных сетях
- •11.1. Классификации сетевых атак
- •11.2. Защита сетевого трафика
- •Заключение
10.2. Протокол http
HTTP (HyperText Transfer Protocol - протокол передачи гипертекста) - протокол прикладного уровня стека протоколов TCP/IP. предназначенный для передачи данных по сети с использованием транспортного протокола TCP. Текущая версия протокола HTTP vl.l, его спецификация приводится в документе RFC 2616.
Протокол HTTP может использоваться также в качестве «транспорта» для других протоколов прикладного уровня, например, таких как SOAP или XML-RPC.
Основой HTTP является технология «клиент-сервер». HTTP-клиенты отсылают HTTP-запросы, которые содержат метод, обозначающий потребность клиента. Также такие запросы содержат универсальный идентификатор ресурса, указывающий на желаемый ресурс. Обычно такими ресурсами яапяются хранящиеся на сервере файлы. По умолчанию HTTP-запросы передаются на порт 80. HTTP-сервер он отсылает коды состояния, сообщая, успешно ли выполнен HTTP-запрос или же он был неудачен.
Унифицированный идентификатор ресурса (Uniform Resource Identifier. URI) представляет собой сочетание унифицированного указателя ресурса (Uniform Resource Locator, URL) и унифицированного имени ресурса (Uniform Resource Name, URN). Например:
URI = http://iitus.bstu.ru/to_schoolleaver/23()4(X) URL = http://iitus.bstu.ru/ URN = to_schoolleaver/23()4(X)
Метод протокола HTTP - это команда, передаваемая HTTP-клиентом HTTP-серверу. В таблице 10.2 перечислены некоторые методы, определенные в протоколе HTTP vl.l. Полный список методов HTTP vl.l. содержится в документе RFC 2616.
Код состояния HTTP (HTTP status code) представляет собой целое число из трех. Первая цифра указывает на класс состояния:
Таблица 10.2. Основные методы HTTP vl.l
Метод |
Назначение |
GET |
Используется для запроса содержимого ресурса, на который указывает URI, содержащийся в запросе |
HEAD |
Используется для извлечения метаданных или проверки наличия ресурса, на который указывает URI, содержащийся в запросе |
POST |
Применяется для передачи данных заданному ресурсу. Данный метод предполагает, что по указанному UR1 будет производиться обработка передаваемого клиентом содержимого |
PUT |
Применяется для передачи данных заданному ресурсу. Данный метод предполагает, что передаваемое клиентом содержимое соответствует находящемуся поданному UR1 ресурсу |
OPTIONS |
Используется для определения возможностей HTTP-сервера или параметров соединения для конкретного ресурса |
DELETE |
Применяется для удаления ресурса, на который указывает URI |
информационные сообщения:
успешное выполнение;
переадресация;
ошибка клиента;
ошибка сервера.
Полный список статусов HTTP vl.l. содержится в документе RFC 2616. Примеры:
201 Webpage Created
403 Access allowed only for registered users
Структура HTTP-сообщения
Каждое HTTP-сообщение состоит из трех частей, которые передаются в указанном порядке:
Стартовая строка (Starling line) - определяет тип сообщения;
Заголовки (Headers) - характеризуют тело сообщения, параметры передачи и прочие сведения;
Тело сообщения (Message Body) - непосредственно данные сообщения.
Стартовые строки HTTP-сообщения различаются для запроса и ответа. Стартовая строка HTTP-запроса имеет такой формат:
Метод URI HTTP/Версия
А вот стартовая строка HTTP-ответа имеет несколько иной формат:
HTTP/Версия КодСостояния Пояснение
Заголовок HTTP - это строка в HTTP-сообщении, содержащее разделенную двоеточием пару параметр-значение. Заголовки должны отделяться от тела сообщения хотя бы одной пустой строкой. Все заголовки разделяются на четыре основных группы:
Основные заголовки (General Headers) - должны включаться в любое сообщение клиента и сервера.
Заголовки запроса (Request Headers) - используются только в запросах клиента.
Заголовки ответа (Response Headers) - только для ответов от сервера.
Заголовки сущности (Entity Headers) - сопровождают каждую сущность сообщения.
Полный список заголовков HTTP vl.l. содержится в документе RFC 2616. Примеры заголовков:
Content-Type: text/plain; charset=windows-1251 Content-Language: ru
Тело HTTP-сообщения, если оно присутствует, используется для передачи данных, связанных с запросом или ответом.
Примеры HTTP-сообщений
Чтобы понять, как работает протокол HTTP, рассмотрим пример получения HTML-страницы с HTTP-сервера. HTTP-запрос:
GET /to_schoolleaver/230400 HTTP/1.1 Host: iitus.bstu.ru
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) Accept: text/html Accept-Language: ru Connection: close
НТТР-ответ:
HTTP/1.1 200 OK
Date: Fri, 16 Dec 2011 12:35:00 GMT Server: Apache
Last-Modified: Wed, 11 Feb 2009 11:20:59 GMT Content-Language: ru Content-Type: text/html; charset=utf-8 Content-Length: 1234 Connection: close
(далее следует запрошенная HTML-страница) 103. Протокол SMTP
SMTP (Simple Mail Transfer Protocol - простой протокол передачи почты) - прикладной протокол стека протоколов TCP/IP, предназначенный для передачи сообщений электронной почты по сети с использованием транспортного протокола TCP. Протокол SMTP описай в документе RFC 821, а его расширение ESMTP (Extended SMTP) - в документе RFC 1869.
Для передачи сообщений электронной почты с помощью протокола SMTP используются SMTP-клиент и SMTP-сервер. SMTP-клиент передает команды SMTP-серверу на порт 25. Основные SMTP-команды перечислены в таблице 10.3. Полный список SMTP-команд, а также их описание нужно смотреть в документах RFC 821 и RFC 1869.
Таб.ища 10.3. Основные команды SMTP
Команда |
Назначение |
HELLO 1Р-адрес_клиента |
Инициализирует SMTP-сеанс |
MAIL ?НОЬА:<адрес_отправителя> |
Инициирует почтовую передачу, идентифицирует адрес электронной почты отправителя |
RCPT ТО:<адрес_получателя> |
Идентифицирует адрес электронной почты получателя |
DATA |
Инициирует передачу почтовых данных. Данные передаются как TCP-сегменты. Конец письма - точка в пустой строке |
QUIT |
Завершение SMTP-сеанса |
Сервер отвечает на каждую команду строкой, содержащей код из трех цифр и поясняющее текстовое сообщение, отделенное пробелом. Первая цифра кода указывает на то, что:
команда успешно выполнена;
ожидаются дополнительные данные от клиента;
временная ошибка, клиент должен произвести следующую попытку через некоторое время;
неустранимая ошибка.
Примеры SMTP-сообщений
Чтобы понять, как работает протокол SMTP, рассмотрим пример отправки электронного письма получателю userl@mail.ru от отправителя user2@yandex.ru. В этом примере S обозначает SMTP-сервер, а С - SMTP-клиента.
S: (Ожидает соединения)
С: (Устанавливает соединение с сервером)
S: 250 smtp.mail.ru is ready
С: HELO 192.168.1.1
S: 250 smtp.mail.ru is ready
С: MAIL FROM:<user2@yandex.ru> (указывает отправителя)
S: 250 user2@yandex.ru sender accepted
С: RCPT TO:<user1@mail.ru> (указывает получателя)
S: 250 user1@mail.ru ok
C: DATA (начинает передачу электронного письма) S: 354 Start mail input; end with "."
C: from: user2@yandex.ru C: to: user1@mail.ru C: subject: Тема письма
С:
С: Привет!
С:. (завершает передачу электронного письма) S: 250 ОК С: QUIT
S: 221 smtp.mail.ru is closing transmission channel
С: (Закрывает соединение)