Кратко
- Mark Nottingham предложил название «HTTP/3», чтобы обозначить HTTP как семантику, работающую поверх QUIC, и не смешивать эту привязку с транспортом QUIC.
- Одновременно он предложил после публикации передать поддержку HTTP/3 и QPACK рабочей группе HTTP. Позднейшие уставы IETF фиксируют такое распределение.
- Эта граница проясняет, кто принимает решения и поддерживает документы. Она не гарантирует совместимость или внедрение и не делает Nottingham единоличным автором решения.
К концу 2018 года словом «QUIC» обозначали и транспортный протокол, и привязку HTTP, работающую поверх него. Те, кто не следил за обсуждениями, могли принять эти вещи за один проект. Проблема была не только в терминологии: если транспорт и прикладной протокол выглядят единым продуктом, становится непонятно, какая рабочая группа должна отвечать за дальнейшие решения.
28 октября Mark Nottingham написал в список рассылки рабочей группы QUIC. Он предложил назвать документ HTTP «HTTP/3» и использовать h3 как окончательный идентификатор ALPN. По его замыслу, название показывало бы еще один способ связать семантику HTTP с протоколом на проводе, как это произошло с HTTP/2, и помогало бы отличать такую привязку от транспорта QUIC. Первичное обоснование сохранилось в его письме.
Предложение касалось и того, кто будет поддерживать спецификацию. После публикации, писал Nottingham, сопровождение HTTP/3 и QPACK следует передать рабочей группе HTTP. Документ может появиться в группе, которая разрабатывает транспорт, но это не значит, что она должна принимать все будущие решения о прикладном протоколе. Группа QUIC могла создать исходную привязку, а сообщество HTTP — заниматься последующим развитием HTTP. Название отвечало на вопрос «что именно описано», передача поддержки — «кто отвечает дальше».
На встрече разделили поддержку и право решать
На IETF 103 группа QUIC обсуждала название. В протоколе отражены разные мнения: кто-то воспринимал HTTP/3 как преемника HTTP/2, а кто-то опасался, что новое название подразумевает ответвление. Nottingham напомнил, что HTTP/2 не отменял и не заменял HTTP/1.1. Важнее было отделить семантику от протокола, который переносит ее по сети.
Протокол не фиксирует формальное голосование. В нем записан неофициальный «гул» участников: примерно 70 к 30 в поддержку нового имени и почти единогласное согласие, что решение должен принять HTTPbis. Второй вывод лучше показывает границу полномочий. Работа появилась в группе QUIC, но имя версии HTTP должна определить группа HTTP. Nottingham прямо сказал, что именование HTTP должно оставаться делом HTTP-сообщества.
В октябрьском письме стояла пометка «Chair hat». Nottingham просил ограничить дискуссию в Бангкоке, чтобы обсуждение названий не отнимало время у технической работы. Разработчикам и пользователям требовалось понятное описание, но у группы были и другие задачи. Председатель мог определить рамки вопроса и распорядок встречи, но не мог заменить консенсус собственным решением.
Название точно работает, когда слои остаются видны
Опубликованная спецификация сохраняет различие. RFC 9114 определяет HTTP/3 как отображение семантики HTTP на QUIC. RFC 9110 задает семантику HTTP, а RFC 9000 описывает транспорт QUIC. HTTP/3 использует надежную, упорядоченную доставку данных по потокам QUIC и его свойства безопасности, сохраняя смысл HTTP-сообщений и их роль на уровне приложения. Название обозначает связку протоколов, а не слияние слоев.
Идентификатор ALPN h3 — не просто другое написание публичного имени HTTP/3. Это обозначение, которое используется на проводе при согласовании протокола. «HTTP/3» помогает классифицировать спецификацию и работу; h3 нужен двум сторонам для выбора протокола. Nottingham писал, что название не будет формализовано и использовано на проводе до публикации. Значит, группа могла пересмотреть предложение до того, как идентификатор повлиял бы на ожидания совместимости.
Передача поддержки тоже была закреплена в документах управления. Устав HTTPbis 2018 года предусматривал, что после публикации QUIC-группой HTTP/3 группа HTTPbis будет поддерживать его и разрабатывать расширения по мере необходимости, включая QPACK. Действующий устав HTTP включает HTTP/3 и QPACK в основные спецификации HTTP. Текущий устав QUIC говорит, что QUIC-группа создала эту привязку и QPACK, но теперь их сопровождает группа HTTP.
Граница не превращает группы в изолированные острова. В списке QUIC по-прежнему есть работа над событиями qlog для HTTP/3, где пересекаются наблюдаемость транспорта и приложения. Точнее говорить о главной ответственности: группа HTTP поддерживает HTTP-привязку и ее расширения, а группа QUIC продолжает заниматься механизмами транспорта. Поскольку в работающих системах слои взаимодействуют, сотрудничество остается необходимым.
Публикация не заменяет внедрение
Название HTTP/3 само по себе не заставляет клиент предлагать этот протокол, сервер — принимать его, а сеть — передавать его без ошибок. Публикация RFC и идентификатор ALPN дают общую точку отсчета. Реализациям еще предстоит согласовать протокол, проверить совместимость, предусмотреть откат и решить, внедрять ли его. Имя уменьшает путаницу в категориях, но не показывает распространенность или производительность.
Это ограничение одновременно определяет ценность предложения. Общая спецификация задает смысл сообщений HTTP и их привязку к QUIC. Транспортный документ может описывать доставку, управление перегрузкой и безопасность транспорта. Уставы назначают постоянных сопровождающих. Затем операторы и разработчики решают, использовать ли спецификации и каким образом. Каждая запись отвечает на отдельный вопрос.
Вклад Nottingham заключался не в том, что он один придумал HTTP/3 или лично передал его на поддержку другой группе. Он связал публичное имя с будущей ответственностью и настаивал, что имя должна определить группа HTTP. Протокол встречи и уставы показывают, как эти вопросы рассматривались. Для новой спецификации полезно спросить: понятно ли читателю, что осталось общим, что изменилось, кто поддерживает каждую часть и что еще должны подтвердить реализации?
Источники
- Mark Nottingham — “Identifying our deliverables” (28 октября 2018 года)
- Протокол заседания рабочей группы QUIC на IETF 103
- Материалы HTTPbis на IETF 103: ответственность за HTTP/QUIC
- Устав HTTPbis, версия 08
- Действующий устав рабочей группы HTTP
- Действующий устав рабочей группы QUIC
- RFC 9114 — HTTP/3
- RFC 9110 — Семантика HTTP
- RFC 9000 — QUIC, защищенный мультиплексируемый транспорт поверх UDP
- Рабочий проект QUIC-HTTP -16
- Рабочий проект QUIC-HTTP -18
- Документы рабочей группы QUIC
- IETF Datatracker — Mark Nottingham
- Heng Lu — Минимальная исходная спецификация, локализованные будущие решения и добровольное внедрение (редакционная рамка)
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
