2016-08-27 4 views
2

Я учу HTTP/2. Я знаю, что есть RFC7540, который является спецификацией HTTP/2. Но меня смутил термин «идентификатор протокола», показанный на implementation page. Есть h2, h2c, h2-14, h2-15, h2-16, h2-17, h2c-17 (не уверен, что все перечисленные).Что такое идентификатор протокола HTTP/2 и почему их так много?

Что это за идентификаторы протокола? Какова связь между ними и RFC7540?

Что означает, если какая-либо версия сервера HTTP/2 утверждает, что поддерживает (?) Некоторый идентификатор протокола?

ответ

5

RFC7540 был опубликован в мае 2015 г. Он описывает h2 и H2C. Перед публикацией существует 17 проектов публикаций:

Некоторые веб-серверы включали поддержку HTTP2, начиная с некоторых черновая версия. Некоторые веб-сервер поддерживает все еще предварительные версии протокола вместе с поддержкой окончательной версии. Названия h2-17, h2c-17, h2-16, h2c-16, ... используются для указания h2 или h2c из соответствующей черновой спецификации.

+0

Почему они все еще нуждаются в поддержке черновиков с окончательной версией? По соображениям совместимости? – laike9m

+0

@ laike9m: Извините, но это слишком подробный вопрос. Причина может быть * разной для каждого веб-сервера *. Многие веб-сервер, доступный бесплатно, и очистка существующего кода займет только время и не дает денег для веб-разработчиков. Вы можете исследовать точные различия между проектами стандартов путем изучения [различий] (https://tools.ietf.org/rfcdiff?url2=rfc7540), но какое практическое значение имеет он? Гораздо более важным для большинства читателей вашего вопроса является тот факт, что ** h2-16 и h2-17 не являются новыми стандартами ** (16 и 17 означает, например, не 2016 и 2017 годы). Разве это не так? – Oleg

+0

Хорошо, спасибо за ответ. – laike9m