RFC: 2068
Оригинал: Hypertext Transfer Protocol - HTTP/1.1
Другие версии: RFC 2616
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , , ,
Перевод: Алексей Симонов

14.41. Upgrade

Общий заголовок Upgrade позволяет клиенту определять, какие дополнительные протоколы взаимодействия он поддерживает и хотел бы использовать, если сервер находит, что он приспосабливает к протоколам переключения. Сервер ДОЛЖЕН использовать поле заголовка Upgrade в пределах 101 (Switching Protocols) ответ, чтобы указать, какой протокол (ы) переключаются.

Upgrade        = "Upgrade" ":" 1#product

Например,

Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

Поле заголовка Upgrade предназначено, чтобы предоставить простой механизм для перехода от HTTP/1.1 к некоторому другому, несовместимому протоколу. Он делает так, разрешая клиенту рекламировать его желание использовать другой протокол, например, более позднюю версию HTTP с более высоким старшим номером версии, даже при том, что текущий запрос был сделан, используя HTTP/1.1.

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

Поле заголовка Upgrade только применяется к переключающимся протоколам прикладной программы на существующее подключение транспортного уровня. Upgrade не может использоваться, чтобы настоять на изменении протокола; его принятие и использование сервером являются опциональными. Возможности и характер взаимодействия прикладного уровня после изменения протокола полностью зависят от нового выбранного протокола, хотя первое действие после изменения протокола ДОЛЖНО быть ответом на начальный запрос HTTP, содержащий поле заголовка Upgrade.

Поле заголовка Upgrade только применяется к непосредственному подключению.

Поэтому, ключевое слово обновления ДОЛЖНО быть предоставлено в пределах поля заголовка Connection (раздел 14.10) всякий раз, когда Upgrade присутствует в HTTP/1.1 сообщение.

Поле заголовка Upgrade не может использоваться, чтобы указать переключение для протокола на другом подключении. С этой целью, он является более соответствующим использовать 301, 302, 303, или 305 ответов перенаправления.

Эта спецификация только определяет имя протокола "HTTP" для использования семьей Языков передачи гипертекста, как определено правилами управления версиями HTTP раздела 3.1 и будущего обновления этой спецификации. Любой token может использоваться как имя протокола; однако, он только будет полезен, если и клиент и сервер свяжут имя с тем же самым протоколом.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.