Протокол HTTP 1.1Рефераты >> Коммуникации и связь >> Протокол HTTP 1.1
Оглавление
1. Введение. 5
1.1. Назначение. 5
1.3 Терминология. 5
2. Общее описание. 8
3. Параметры протокола. 11
3.1 Версия HTTP. 11
3.2 Универсальный Идентификатор Ресурса (URI). 12
3.2.1 Общий синтаксис. 12
3.2.2 HTTP URL. 13
3.2.3 Сравнение URI. 13
3.3 Форматы даты/времени. 14
3.3.1 Полная дата. 14
3.3.2 Разность секунд (delta seconds). 15
3.4 Кодовые таблицы (character sets). 15
3.5 Кодирования содержимого (content codings). 15
3.6 Кодирования передачи (Transfer Codings). 16
3.7 Медиатипы (Media Types). 17
3.7.1 Канонизация и предопределенные значения типа text. 18
3.7.2 Типы Multipart. 19
3.8 Маркеры продуктов (Product Tokens). 19
3.9 Величины качества (Quality Values). 20
3.10 Метки языков (Language Tags). 20
3.11 Метки объектов (Entity Tags). 21
3.12 Единицы измерения диапазонов (Range Units). 21
4. HTTP сообщение (HTTP Message). 22
4.1 Типы сообщений. 22
4.2 Заголовки сообщений. 22
4.3 Тело cообщения. 23
4.4 Длина сообщения. 24
4.5 Общие поля заголовка. 25
5. Запрос (Request). 25
5.1 Строка запроса (Request-Line). 25
5.1.1 Метод (Method). 25
5.1.2 URI запроса (Request-URI). 26
5.2 Ресурс, идентифицируемый запросом. 27
5.3 Поля заголовка запроса. 28
6 Ответ (Response). 28
6.1 Строка состояния (Status-Line). 28
6.1.1 Код состояния и поясняющая фраза. 28
6.2 Поля заголовка ответа. 30
7 Объект (Entity). 30
7.1 Поля заголовка объекта. 30
7.2 Тело объекта. 31
7.2.1 Тип. 31
7.2.2 Длина. 32
8 Соединения (Connections). 32
8.1 Постоянные соединения (Persistent Connections). 32
8.1.1 Цель. 32
8.1.2 Общее описание. 32
8.1.2.1 Обсуждение (Negotiation). 33
8.1.2.2 Конвейерная обработка (Pipelining). 33
8.1.3 Прокси-сервера (Proxy Servers). 33
8.1.4 Практические соображения. 34
8.2 Требования к передаче сообщений. 34
9 Определения методов. 36
9.1 Безопасные и идемпотентные методы. 36
9.1.1 Безопасные методы. 36
9.1.2 Идемпотентные методы. 37
9.2 OPTIONS. 37
9.3 GET. 38
9.4 HEAD. 38
9.5 POST. 38
9.6 PUT. 39
9.7 DELETE. 40
9.8 TRACE. 41
10 Определение кодов состояния. 41
10.1 1xx - Информационные коды. 41
10.1.1 100 Продолжать, Continue. 41
10.1.2 101 Переключение протоколов, Switching Protocols. 42
10.2 2xx - Успешные коды. 42
10.2.1 200 OK. 42
10.2.2 201 Создан, Created. 42
10.2.3 202 Принято, Accepted. 43
10.2.4 203 Не авторская информация, Non-Authoritative Information. 43
10.2.5 204 Нет содержимого, No Content. 43
10.2.6 205 Сбросить содержимое, Reset Content. 43
10.2.7 206 Частичное содержимое, Partial Content. 44
10.3 3xx - Перенаправление. 44
10.3.1 300 Множественный выбор, Multiple Choices. 44
10.3.2 301 Постоянно перемещен, Moved Permanently. 45
10.3.3 302 Временно перемещен, Moved Temporarily. 45
10.3.4 303 Смотреть другой, See Other. 45
10.3.5 304 Не модифицирован, Not Modified. 46
10.3.6 305 Используйте прокси-сервер, Use Proxy. 46
10.4 4xx - Коды ошибок клиента. 47
10.4.1 400 Испорченный Запрос, Bad Request. 47
10.4.2 401 Несанкционированно, Unauthorized. 47
10.4.3 402 Требуется оплата, Payment Required. 47
10.4.4 403 Запрещено, Forbidden. 47
10.4.5 404 Не найден, Not Found. 48
10.4.6 405 Метод не допустим, Method Not Allowed. 48
10.4.7 406 Не приемлем, Not Acceptable. 48
10.4.8 407 Требуется установление подлинности через прокси-сервер, Proxy Authentication Required. 48
10.4.9 408 Истекло время ожидания запроса, Request Timeout. 49
10.4.10 409 Конфликт, Conflict. 49
10.4.11 410 Удален, Gone. 49
10.4.12 411 Требуется длина, Length Required. 50
10.4.13 412 Предусловие неверно, Precondition Failed. 50
10.4.14 413 Объект запроса слишком большой, Request Entity Too Large. 50
10.4.15 414 URI запроса слишком длинный, Request-URI Too Long. 50
10.4.16 415 Неподдерживаемый медиатип, Unsupported Media Type. 50
10.5 5xx - Коды ошибок сервера. 51
10.5.1 500 Внутренняя ошибка сервера, Internal Server Error. 51
10.5.2 501 Не реализовано, Not Implemented. 51
10.5.3 502 Ошибка шлюза, Bad Gateway. 51
10.5.4 503 Сервис недоступен, Service Unavailable. 51
10.5.5 504 Истекло время ожидания от шлюза, Gateway Timeout. 51
10.5.6 505 Не поддерживаемая версия HTTP, HTTP Version Not Supported. 52
11 Установление подлинности доступа (Access Authentication). 52
11.1 Базовая схема установления подлинности (Basic Authentication Scheme). 53
11.2 Обзорная схема установления подлинности (Digest Authentication Scheme) [1]. 54
13 Кэширование в HTTP. 54
13.1 Общая информация о кэшировании. 55
13.1.1 Правильность кэша. 55
13.1.2 Предупреждения. 56
13.1.3 Механизмы управления кэшем (Cache-control Mechanisms). 57
13.1.4 Явные предупреждения агента пользователя. 57
13.1.5 Исключения из правил и предупреждений. 57
13.1.6 Контролируемое клиентом поведение. 58
13.2 Модель устаревания. 58
13.2.1 Устаревание, указанное сервером. 58
13.2.2 Эвристическое устаревание. 59
13.2.3 Вычисление возраста. 59
13.2.4 Вычисление устаревания. 61
13.2.5 Устранение противоречий в значениях устаревания. 62
13.2.6 Устранение противоречий между несколькими ответами. 62
13.3 Модель проверки достоверности (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 (Многоцелевых Расширений Электронной Почты).