Как spec говорит:Как выполняется управление потоком HTTP/2 по ходу?
управления потоком является специфичным для соединения. Оба типа управления потоком находятся между конечными точками одним ходом, а не по всему пути .
Оба типа управления потоком хмель от хмеля, то есть только между две конечные точки. Посредники не пересылают кадры WINDOW_UPDATE между зависимыми соединениями. Однако, дросселирование передачи данных на , любой приемник может косвенно вызвать распространение информации об управлении потоком исходному отправителю.
Но как это возможно? Кажется, что это требует от всех посредников, чтобы понять h2
или h2c
протокол, и у меня есть два вопроса:
HTTP/2 является относительно новым стандартом, и я видел много сайтов, эта функция включена (мой блог входит в комплект). Хотя я могу посещать эти веб-сайты без каких-либо проблем, означает ли это, что каждое промежуточное устройство по пути, как маршрутизаторы и концентраторы и т. Д. Уже реализовало свои собственные алгоритмы стека и управления потоком HTTP/2 (поскольку RFC7540 не предусматривает алгоритм управления потоком)?
Большинство сайтов использует
h2
, а неh2c
, который шифрует данные прикладного уровня. Управление потоком HTTP/2 осуществляется приемниками, отправляющимиWINDOW_UPDATE
кадр, который также является данными уровня приложения, а затем как промежуточные устройства знают, что представляют собой эти данные? Если они не могут расшифровать данные и посмотреть частьWindow Size Increment
, как они выполняют контроль потока, не пересылаяWINDOW_UPDATE
кадр?
К сожалению, это опечатка, я знаю, что 'h2' используется больше, чем' h2c'. – laike9m
Хороший ответ. Есть ли какое-либо определение «посредников» где-то в RFC7540 или других RFC? – laike9m
Не то, что я знаю, но для управления потоком «посредник» должен декодировать и перекодировать HTTP/2 кадра. Поэтому сетевые элементы (ключи, прокси и т. Д.) Между клиентом и сервером с использованием 'h2' исключаются, поскольку они просто передают зашифрованные байты, а не HTTP/2 кадра. – sbordet