Практическое занятие 7. Гипертекстовый протокол HTTP (часть 2) 132

Идентификация доступа (RFC-2617) 132

Базовая схема идентификации (Authentication) 134

Краткое изложение схемы авторизации 134

Согласование содержимого 134

Согласование, управляемое сервером 134

Согласование, управляемое агентом (Agentdriven Negotiation) 135

Прозрачное согласование (Transparent Negotiation) 136

Кэширование в HTTP 136

Корректность кэша 137

Предупреждения 137

Механизмы управления кэшем 138

Прямые предупреждения агента пользователя 138

Исключения для правил и предупреждений 138

Работа под управлением клиента 138

Модель истечения срока годности. Определение срока годности под управлением сервера 139

Эвристический контроль пригодности 139

Вычисление возраста 139

Вычисление времени жизни (Expiration) 141

Устранение неопределенности значений времени жизни 141

Неопределенность из-за множественных откликов 142

Модель проверки пригодности 142

Даты последней модификации 143

Валидаторы кэша для меток объектов (Entity Tag Cache Validators) 143

Слабые и сильные валидаторы 143

Правила того, когда использовать метки объекта и даты последней модификации 144

Условия пригодности 145

Кэшируемость отклика 145

Формирование откликов кэшей 146

Заголовки End-to-end (точка­точка) и Hop-by-hop (шаг­за-шагом) 146

Немодифицируемые заголовки 146

Комбинирование заголовков 147

Комбинирование байтовых фрагментов 147

Кэширование согласованных откликов 147

Кэши коллективного и индивидуального использования 148

Ошибки и поведение кэша при неполном отклике 148

Побочные эффекты методов GET и HEAD 148

Несоответствие после актуализации или стирания 149

Обязательная пропись (Write-Through Mandatory) 149

Замещения в кэше 149

Списки предыстории 149

Определения полей заголовка 150

Поле Accept 150

Поле Accept-Charset 151

Поле Accept-Encoding 151

Поле Accept-Language 152

Поле Accept-Ranges 152

Поле Age 152

Поле Allow 153

Авторизация 153

Поле Cache-Control 154

Что допускает кэширование? 155

Что может быть записано в память кэша? 155

Модификации базового механизма контроля времени жизни 155

Управление перепроверкой пригодности и перезагрузкой 156

End-to-end reload 156

Specific end-to-end revalidation 156

Unspecified end-to-end revalidation 156

Директива No-Transform 158

Расширения управления кэшем 158

Соединение 158

Content-Base 159

Кодирование содержимого 159

Язык содержимого 159

Длина содержимого 160

Поле Content-Location 160

Content-MD5 160

Отрывок содержимого 161

Тип содержимого 162

Дата 162

Поле ETag 163

Поле Expires 163

Поле From 163

Поле Host 164

Поле If-Modified-Since 164

Поле If-Match 165

Поле If-None-Match 165

Заголовок If-Range 166

Поле If-Unmodified-Since 167

Поле Last-Modified 167

Поле Location 167

Поле Max-Forwards 167

Поле Pragma 168

Поле Proxy-Authenticate 168

Поле Proxy-Authorization 168

Поле Public 169

Фрагмент. Фрагменты байт 169

Запросы получения фрагментов 170

Поле Referer 170

Поле Retry-After 171

Поле Server 171

Поле Transfer-Encoding (Транспортное кодирование) 171

Заголовок Upgrade (Актуализация) 171

Поле User-Agent (Агент пользователя) 172

Поле Vary 172

Поле Via 173

Поле Warning (Предупреждение) 174

Поле WWW-Authenticate 175

Соображения безопасности 175

Аутентификация клиентов 176

Предложение выбора схемы идентификации 176

Злоупотребление служебными (Log) записями сервера 177

Передача конфиденциальной информации 177

Атаки, основанные на именах файлов и проходах 177

Персональная информация 178

Аспекты конфиденциальности, связанные с заголовками Accept 178

Фальсификация DNS 178

Заголовки Location и мистификация 179

Приложения 179

1. Интернетовский тип среды message/http 179

2. Тип среды Интернет multipart/byteranges 179

3. Толерантные приложения 179

4. Различие между объектами HTTP и MIME 180

Преобразование к канонической форме 180

Введение кодирования содержимого 180

No Content-Transfer-Encoding 180

Поля заголовка в многофрагментных телах 181

Введение транспортного кодирования 181

MIME-Version 181

Дополнительные методы запросов 181

Метод PATCH 181

Метод LINK 182

Определения дополнительных полей заголовка 182

Поле Alternates 182

Поле Content-Version 182

Поле Derived-From 182

Поле Link 182

Практическое занятие 8. Функционирование веб-приложений. 185

Как работают веб-приложения 185

Краткие итоги 187

Протокол HTTP/HTTPS 187

Краткие итоги 193

Что такое веб-сервер? 194

Краткие итоги 199

Контрольные вопросы 199

Практическое занятие 1. Адресация IPv4

Протокол IP версии 4

Данные, передаваемые с использованием протокола IPv4, помещаются в сообщения, называемые пакетами или дейтаграммами. Протокол IPv4 использует пакет, который условно можно разделить на заголовок длиной, как правило, 20 байт и данные. Заголовок содержит адресные и управляющие поля, а в поле Данные находится непосредственно информация, которая передается через составную сеть. В отличие от формата некоторых других протоколов, например Ethernet, пакет IPv4 не содержит следующего за полем Данные контрольной суммы всего пакета.

Практическое занятие 7. Гипертекстовый протокол HTTP (часть 2) 132 - student2.ru

Рис. 1.1 Формат пакета IPv4

Пакет IPv4 состоит из следующих полей:

● Версия (Version) – для IPv4 значение поля равно 4;

● Длина заголовка (IHL, Internet Header Length) – указывает на начало блока данных в пакете. Обычно значение для этого поля равно 5;

● Тип сервиса (ToS, Type of Service) – содержит информацию, требуемую для обеспечения функций качества обслуживания (QoS);

● Общая длина (TL, Total Length) – общая длина пакета с учетом заголовка и поля данных;

● Идентификатор пакета (Identification) – используется для распознавания пакетов, образовавшихся путем фрагментации исходного пакета;

● Флаги (Flag) – содержит признаки, связанные с фрагментацией пакета;

● Смещение фрагмента (Fragment Offset) – значение, определяющее позицию фрагмента в потоке данных;

● Время жизни (TTL, Time to Live) – временной интервал, в течение которого пакет может перемещаться по сети маршрутизаторами;

● Протокол (Protocol) – указывает, какому протоколу верхнего уровня принадлежит информация, размещенная в поле данных пакета;

● Контрольная сумма (Header Checksum) – рассчитывается по заголовку и позволяет определить целостность заголовка пакета;

● Адрес источника (Source IP Address) и адрес назначения (Destination IP Address) – указывают отправителя и получателя пакета;

● Опции (Options) – необязательное поле, может использоваться при отладке работы сети;

● Данные (Data) – данные передаваемые в пакете: или полное сообщение, полученное от вышележащего уровня или его фрагмент.

Заголовок IPv4, как правило, имеет длину 20 байт. При использовании необязательного поля Опции (Options), длина заголовка может быть увеличена в зависимости от количества опций, но всегда остается кратной 32 битам.

Понятие IP-адресации

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

В отличие от физического адреса (МАС-адреса), который присваивается каждому сетевому устройству во время изготовления и позволяет уникально идентифицировать каждый узел сети, IP-адрес идентифицирует сетевой интерфейс (интерфейс подключения к сети), а не само устройство.

Практическое занятие 7. Гипертекстовый протокол HTTP (часть 2) 132 - student2.ru

Рис. 1.2 IP-интерфейсы устройств

Любое устройство, которое передает данные, используя сетевой уровень, будет иметь как минимум один уникальный IP-адрес для сетевого интерфейса. Например, таким сетевым узлам, как компьютеры (если установлена одна сетевая карта) и сетевые принт-серверы обычно присваивают один IP-адрес. Маршрутизаторам или коммутаторам 3 уровня может быть присвоено более одного IP-адреса, т.к. они могут использоваться для соединения нескольких сетей.

Для того чтобы устройство участвовало в сетевом взаимодействии с помощью протокола IP, его интерфейсу должен быть присвоен уникальный IP-адрес, который позволяет однозначно идентифицировать интерфейс между ним и данной сетью. IP-адреса назначаются независимо от физических адресов. Если устройство переместить в новую сеть, его IP-адрес изменится, а физический (МАС-адрес) останется прежним.

Таким образом, каждое устройство, которое выполняет передачу данных, имеет связанный с ним адрес на канальном уровне и IP-адрес на сетевом уровне. Возникает вопрос: почему адресация выполняется на двух разных уровнях? Потому что эти два адреса используются для разных целей. Логически соединение между источником и приемником сообщения в составной сети осуществляется на сетевом уровне с использованием IP-адреса. Поэтому IP-адреса иногда называют логическими адресами. Физически отправителя и получателя соединяет последовательность каналов связи, работающих по технологиям канального уровня. Чтобы передать данные между непосредственно подключенными устройствами используются адреса канального уровня, например, МАС-адреса.

Практическое занятие 7. Гипертекстовый протокол HTTP (часть 2) 132 - student2.ru

Рис. 1.3 Физические и логические адреса

Наши рекомендации