Протокол HTTP 1.1
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
и (validation model).63
Библиографический список65
1. Введение.
Протокол передачи гипертекста (HTTP) - протокол прикладного уровня для распределенных, совместных, многосредных информационных систем. HTTP используется в World Wide Web (WWW) начиная с 1990 года. Первой версией HTTP, известной как HTTP/0.9, был простой протокол для передачи необработанных данных через Интернет. По определению RFC 1945 HTTP/1.0 был улучшением этого протокола, допускал MIME-подобный формат сообщений, содержащий метаинформацию о передаваемых данных и имел модифицированную семантику запросов/ответов. Однако HTTP/1.0 недостаточно учитывал особенности работы с иерархическими прокси-серверами (hierarchical proxies), кэшированием, постоянными соединениями, и виртуальными хостами (virtual hosts). Кроме того, быстрый рост числа не полностью совместимых с протоколом HTTP/1.0 приложений, потребовал введения новой версии протокола, в которой были бы заложены дополнительные возможности, которые помогли бы привести эти приложения к единому стандарту.
Список RFC относящийся к рассмотренным в данной работе вопросам, приведен в разделе Библиографический список.
1.1. Назначение
Протокол HTTP/1.1 содержит более строгие требования, чем HTTP/1.0, гарантирующие более надежную работу.
Большие информационные системы требуют большего количества функциональных возможностей, чем просто загрузку информации, включая поиск и модификацию данных при помощи внешних интерфейсов. HTTP предоставляет открытый (open-ended) набор методов, которые основаны на системе ссылок, которые обеспечиваются URI (Универсальными Идентификаторами Ресурсов). URI могут идентифицировать как расположение (URL), так и имя (URN) ресурса, к которому применяется данный метод. Сообщения передаются в формате, подобному используемому электронной почтой согласно определениям MIME (Многоцелевых Расширений Электронной Почты).
HTTP также используется как обобщенный протокол связи между агентами пользователей (user agents) и прокси-серверами/шлюзами (proxies/gateways) или другими Интернет-сервисами, включая такие как SMTP, NNTP, FTP, Gopher и WAIS. Таким образом, HTTP определяет основы многосредного доступа к ресурсам для разнообразных приложений.
1.3 Терминология.
- Соединение (connection).
Виртуальный канал транспортого уровня, установленный между двумя программами с целью связи.
- Сообщение (message).
Основной модуль HTTP связи, состоящей из структурной последовательности октетов, соответствующих синтаксису протокола и передаваемых по соединению.
- Запрос (request)
Любое HTTP сообщение, содержащее запрос.
- Ответ (response).
Любое HTTP сообщение, содержащее ответ.
- Ресурс (resource).
Сетевой объект данных или сервис, который может быть идентифицирован URI. Ресурсы могут быть доступны в нескольких представлениях (например на нескольких языках, в разных форматах данных, иметь различный размер или различную разрешающую способность) или различаться по другим параметрам.
- Объект (entity).
Информация, передаваемая в качестве полезной нагрузки запроса или ответа. Объект состоит из метаинформации в форме полей заголовка объекта и содержания в форме тела объекта.
- Представление (representation).
Объект включенный в ответ, и подчиняющийся обсуждению содержимого (Content Negotiation). Может существовать несколько представлений, связанных со специфическими состояниями ответа.
- Обсуждение содержимого (content negotiation).
Механизм для выбора соответствующего представления во время обслуживания запроса. Представление объектов в любом ответе может быть обсуждено (включая ошибочные ответы).
- Вариант (variant).
Ресурс может иметь одно, или несколько представлений, связанных с ним в данный момент. Каждое из этих представлений называется "вариант". Использование термина "вариант" не обязательно подразумевает, что ресурс подчинен обсуждению содержимого.
- Клиент (client)
Программа, которая устанавливает соединения с целью посылки запросов.
- Агент пользователя (user agent).
Клиент, который инициирует запрос. Как правило браузеры, редакторы, роботы (spiders), или другие инструментальные средства пользователя.
- Сервер (server).
Приложение, которое слушает соединения, принимает запросы на обслуживание и посылает ответы. Любая такая программа способна быть как клиентом, так и сервером; наше использование данного термина относится скорее к роли, которую программа выполняет, создавая специфические соединения, нежели к возможностям программы вообще. Аналогично, любой сервер может действовать как первоначальный сервер (origin server), прокси-сервер (proxy), шлюз (gateway) или туннель (tunnel), изменяя поведение, основываясь на характере каждого запроса.
- Первоначальный сервер (origin server).
Сервер, на котором данный ресурс находится постоянно или должен быть создан.
- Прокси-сервер (proxy).
Программа-посредник, которая действует и как сервер, и как клиент с целью создания запросов от имени других клиентов. Запросы обслуживаются прокси-сервером, или пересылаются им, возможно с изменениями. Прокси-сервер, согласно этой спецификации, должен удовлетворять требованиям клиента и сервера.
- Шлюз (gateway).
Сервер, который действует как посредник для некоторого другого сервера. В отличие от прокси-сервера, шлюз получает запросы в качестве первоначального сервера для запрошенного ресурс