Comme le dit spec:Comment le contrôle de flux hop-by-hop HTTP/2 est-il accompli?
contrôle de flux est spécifique à une connexion. Les deux types de contrôle de flux se situent entre les points d'extrémité et un seul saut et non sur l'intégralité du chemin de bout en bout .
Les deux types de contrôle de flux sont hop hop par, c'est seulement entre les deux extrémités . Les intermédiaires ne transmettent pas les trames WINDOW_UPDATE entre les connexions dépendantes. Cependant, l'étranglement du transfert de données par n'importe quel récepteur peut provoquer indirectement la propagation de l'information de contrôle de flux vers l'expéditeur d'origine.
Mais comment est-ce encore possible? Il semble qu'il exige que tous les intermédiaires pour comprendre h2
ou d'un protocole h2c
, et j'ai deux questions:
HTTP/2 est une norme relativement nouvelle, et je l'ai vu de nombreux sites Web l'ont permis (mon blog inclus). Alors que je peux visiter ces sites sans problème, cela signifie-t-il que tous les périphériques intermédiaires comme les routeurs et hubs ont déjà implémenté leurs propres algorithmes de contrôle de flux et de pile HTTP/2 (puisque le RFC7540 ne stipule pas d'algorithme de contrôle de flux)?
La plupart des sites Web utilisent
h2
plutôt queh2c
, qui crypte les données de couche d'application. Le contrôle de flux de HTTP/2 est effectué par des récepteurs qui envoient une trameWINDOW_UPDATE
, qui est également des données de couche d'application, puis comment les périphériques intermédiaires connaissent-ils ces données? S'ils ne peuvent pas déchiffrer les données et voir la partieWindow Size Increment
, comment accomplissent-ils le contrôle de flux sans transférer la trameWINDOW_UPDATE
?
Désolé, c'est une faute de frappe, je sais que 'h2' est plus utilisé que' h2c'. – laike9m
Bonne réponse. Y a-t-il une définition des «intermédiaires» quelque part dans RFC7540 ou d'autres RFC? – laike9m
Pas que je sache, mais pour gérer le contrôle de flux, un "intermédiaire" doit décoder et réencoder les trames HTTP/2. Par conséquent, les éléments de réseau (commutateurs, proxys, etc.) entre un client et un serveur utilisant 'h2' sont exclus car ils ne font que contourner des octets cryptés, pas des trames HTTP/2. – sbordet