Интегрированные сети ISDN

         

Гипертекстный протокол HTTP



4.5.6.1 Гипертекстный протокол HTTP



4.5.6.1.1 Соглашения по нотации и общая грамматика
  1.1. Расширенные BNF
  1.2. Основные правила
4.5.6.1.2. Параметры протокола
  2.1. Версия http
  2.2. Универсальные идентификаторы ресурсов (uri)
  2.2.1. Общий синтаксис
  2.2.2. http url
  2.2.3. Сравнение uri
  2.3. Форматы даты/времени
  2.3.1. Полная дата
  2.3.2. Интервалы времени в секундах
  2.4. Наборы символов
  2.5. Кодировки содержимого
  2.6. Транспортное кодирование
  2.7. Типы среды
  2.7.1. Канонизация и текст по умолчанию
  2.7.2. Составные типы
  2.8. Лексемы (token) продукта
  2.9. Значения качества (quality values)
  2.10. Языковые метки
  2.11. Метки объектов
  2.12. Структурные единицы
4.5.6.1.3. http сообщение
  3.1. Типы сообщений
  3.2. Заголовки сообщений
  3.3. Тело сообщения
  3.4. Длина сообщения
  3.5. Общие поля заголовка
4.5.6.1.4. Запрос
  4.1. Строка запроса
  4.1.1. Метод
  4.1.2. uri запроса
  4.2. Ресурс, идентифицируемый запросом
  4.3. Поля заголовка запроса
4.5.6.1.5. Отклик
  5.1. Статусная строка
  5.1.1. Статусный код и словесный комментарий
  5.2. Поля заголовка отклика
4.5.6.1.6 Объект (entity)
  6.1. Поля заголовка объекта
  6.2. Тело объекта
  6.2.1. Тип
  6.2.2. Длина
4.5.6.1.7. Соединения
  7.1. Устойчивые соединения
  7.1.1. Цель
  7.1.2. Общие процедуры
  7.1.2.1. Согласование
  7.1.2.2. Буферизация
  7.1.3. Прокси-серверы
  7.1.4. Практические соображения
  7.2. Требования к передаче сообщений
4.5.6.1.8. Метод определений
  8.1. Безопасные и idempotent методы
  8.1.1. Безопасные методы
  8.1.2. idempotent методы
  8.2. Опции
  8.3. Метод get
  8.4. Метод head
  8.5. Метод post
  8.6. Метод put
  8.7. Метод delete
  8.8. Метод trace
4.5.6.1.9. Определения статусных кодов
  9.1. Информационный 1xx
  9.2. successful 2xx (Успешная доставка)
  9.3. redirection 3xx (Переадресация)
  9.4. client error 4xx (Ошибка клиента)
  9.5. Сервер ошибок 5xx
4.5.6.1.10. Идентификация доступа
  10.1. Базовая схема идентификации (authentication)
  10.2 Краткое изложение схемы авторизации
4.5.6.1.11. Согласование содержимого
  11.1. Согласование, управляемое сервером
  11.2. Согласование, управляемое агентом (agent-driven negotiation)
  11.3. Открытое согласование (transparent negotiation)
4.5.6.1.12. Кэширование в http
  12.1. Корректность кэша
  12.2. Предупреждения
  12.3. Механизмы управления кэшем
  12.4. Прямые предупреждения агента пользователя
  12.5. Исключения для правил и предупреждений
  12.6. Работа под управлением клиента
  12.7. Модель истечения срока годности
  12.7.1. Определение срока годности под управлением сервера
  12.7.2. Эвристический контроль годности
  12.7.3. Вычисление возраста
  12.7.4. Вычисление времени жизни (expiration)
  12.7.5. Устранение неопределенности значений времени жизни
  12.7.6 disambiguating multiple responses
  12.8. Модель проверки пригодности
  12.8.1. Даты последней модификации
  12.8.2. Валидаторы кэша для меток объектов (entity tag cache validators)
  12.8.3. Слабые и сильные валидаторы
  12.8.4. Правила того, когда использовать метки объекта и даты последней модификации
  12.8.5. Условия пригодности
  12.9. Кэшируемость отклика
  12.10. Формирование откликов кэшей
  12.10.1. Заголовки end-to-end (точка-точка) и hop-by-hop (шаг-за-шагом)
  12.10.2. Не модифицируемые заголовки
  12.10.3. Комбинирование заголовков
  12.10.4. Комбинирование байтовых фрагментов
  12.11. Кэширование согласованных откликов
  12.12. Кэши коллективного и индивидуального использования
  12.13. Ошибки и или поведение кэша при неполном отклике
  12.14. Побочные эффекты get и head
  12.15. Несоответствие после актуализации или стирания
  12.16. Обязательное прописывание (write-through mandatory)
  12.17. Замещения в кэше
  12.18. Списки предыстории
4.5.6.1.13. Определения полей заголовка
  13.1. Поле accept
  13.2. Поле accept-charset
  13.3. Поле accept-encoding
  13.4. Поле accept-language
  13.5. Поле accept-ranges
  13.6. Поле age
  13.7. Поле allow
  13.8. Авторизация
  13.9. Поле cache-control
  13.9.1. Что допускает кэширование
  13.9.2. Что может быть запомнено в кэше
  13.9.3. Модификации базового механизма контроля времени жизни
  13.9.4. Управление перепроверкой пригодности и перезагрузкой
  13.9.5. Директива no-transform
  13.9.6. Расширения управления кэшем
  13.10. Соединение
  13.11. content-base
  13.12. Кодирование содержимого
  13.13. Язык содержимого
  13.14. Длина содержимого
  13.15. Поле content-location
  13.16. content-md5
  13.17. Отрывок содержимого
  13.18. Тип содержимого
  13.19. Дата
  13.20. Поле etag
  13.21. Поле expires
  13.22. Поле from
  13.23. Поле ЭВМ
  13.24. Поле if-modified-since
  13.25. Поле if-match
  13.26. Поле if-none-match
  13.27 Заголовок if-range
  13.28. Поле if-unmodified-since
  13.29. Поле last-modified
  13.30. Поле location
  13.31. Поле max-forwards
  13.32. Поле pragma
  13.33. Поле proxy-authenticate
  13.34. Поле proxy-authorization
  13.35. Поле public
  13.36. Фрагмент
  13.36.1. Фрагменты байт
  13.36.2. Запросы для получения фрагментов
  13.37. Поле referer
  13.38. Поле retry-after
  13.39. Поле server
  13.40. Поле transfer-encoding (Транспортное кодирование)
  13.41. Заголовок upgrade (Актуализация)
  13.42. Поле user-agent (Агент пользователя)
  13.43. Поле vary
  13.44. Поле via
  13.45. Поле warning (Предупреждение)
  13.46. Поле www-authenticate
14.Соображения безопасности
  14.1. Идентификация клиентов
  14.2. Предложение выбора схемы идентификации
  14.3. Злоупотребление служебными (log) записями сервера
  14.4. Передача конфиденциальной информации
  14.5. Атаки, основанные на именах файлов и проходов
  14.6. Персональная информация
  14.7. Аспекты конфиденциальности, связанные с заголовками accept
  14.8. Фальсификация DNS
  14.9. Заголовки location и мистификация
15. Ссылки
16. Приложения
  16.1. Интернетовский тип среды “message/http”
  16.2. Тип среды Интернет “multipart/byteranges”
  16.3. Толерантные приложения
  16.4. Различие между объектами HTTP и mime
  16.4.1. Преобразование к канонической форме
  16.4.2. Преобразование форматов даты
  16.4.3. Введение кодирования содержимого
  16.4.4. no content-transfer-encoding
  16.4.5. Поля заголовка в многофрагментных телах
  16.4.6. Введение транспортного кодирования
  16.4.7. MIME-версия
  16.5. Изменения по отношению HTTP/1.0
  16.5.1. Изменения с целью упрощения распределенных WWW-сервером и экономии IP адресов
  16.6. Дополнительные функции
  16.6.1. Дополнительные методы запросов
  16.6.1.1. Метод patch
  16.6.1.2. Метод link
  16.6.1.3. Метод unlink
  16.6.2. Определения дополнительных полей заголовка
  16.6.2.1. Поле alternates
  16.6.2.2. Поле content-version
  16.6.2.3. Поле derived-from
  16.6.2.4. Поле link
  16.6.2.5. Поле uri
  16.7. Совместимость с предыдущими версиями
  16.7.1 Совместимость с постоянными соединениями HTTP/1.0
  16.7.1.1 Заголовок keep-alive
<
/p> Протокол передачи гипертекста HTTP является протоколом прикладного уровня для распределенных мультимедийных информационных систем. Это объектно-ориентированный протокол, пригодный для решения многих задач, таких как создание серверов имен, распределенных объектно-ориентированных управляющих систем и др.. Структура HTTP позволяет создавать системы, независящие от передаваемой информации.

Протокол HTTP использован при построении глобальной информационной системы World-Wide Web (начиная с 1990).

Первые версии, такие как HTTP/0.9, представляли собой простые протоколы для передачи данных через Интернет. Версия HTTP/1.0, описанная в RFC-1945 [6], улучшила протокол, разрешив использование сообщений в формате MIME, содержащих метаинформацию о передаваемых данных, и модификаторы для запросов/откликов. Дальнейшее развитие сетей WWW-серверов потребовало новых усовершенствований, которые вряд ли являются последними.

Реальные информационные системы требуют больших возможностей, чем простой поиск и доставка данных. Для описания характера, наименования и места расположения информационных ресурсов введены: универсальный идентификатор ресурса URI (Uniform Resource Identifier), универсальный указатель ресурса URL и универсальное имя ресурса URN. Формат сообщений сходен с используемыми в электронной почте и описанный в стандарте MIME (Multipurpose Internet Mail Extensions).

HTTP используется также в качестве базового протокола для коммуникации пользовательских агентов с прокси-серверами и другими системами Интернет, в том числе и использующие протоколы SMTP, NNTP, FTP, Gopher и Wais. Последнее обстоятельство способствует интегрированию различных служб Интернет. Ниже описаны базовые понятия и термины протокола HTTP.

Прокси

Промежуточная программа, которая выполняет функции, как сервера, так и клиента. Такая программа предназначена для обслуживания запросов так, как если бы это делал первичный сервер. Запросы обслуживаются внутри или переадресуются другим серверам.

Туннель

Промежуточная программа, которая работает как ретранслятор между двумя объектами.


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

Время пригодности объекта (expiration time)

Время, при котором исходный сервер требует, чтобы объект не посылался более кэшем без перепроверки пригодности.

Эвристическое значение времени жизни (heuristic expiration time)

Время пригодности, присваиваемое объекту в кэше, если это время не задано явно.

Возраст

Возраст отклика – время с момента его посылки или проверки его пригодности исходным сервером.

Время жизни (freshness lifetime)

Продолжительность времени с момента генерации отклика до истечения его пригодности.

Свежий

Отклик считается свежим, если его возраст не превысил времени его пригодности.

Устаревший

Отклик считается устаревшим, когда его возраст превысил время жизни.

Семантическая прозрачность

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

Валидатор

Протокольный элемент (например, метка объекта или время last-modified), который используется для выяснения того, является ли запись в кэше эквивалентной копией объекта.

Метод

Процедура, выполняемая над ресурсом (get, put, head, post, delete, trace и т.д.).


Содержание раздела