HTTP/3 est conçu pour QUIC, qui est un protocole de transport qui gère les flux par lui-même.
HTTP/2 est conçu pour TCP et gère donc les flux dans la couche HTTP.
Les deux protocoles offrent aux clients des ensembles de fonctionnalités pratiquement identiques.
-
Les deux protocoles offrent des flux
-
Les deux protocoles offrent un support push serveur
-
Les deux protocoles ont une compression d'en-tête, et QPACK et HPACK ont une conception similaire.
-
Les deux protocoles offrent le multiplexage sur une seule connexion utilisant des flux
-
Les deux protocoles établissent des priorités sur les flux
Les différences sont dans les détails et principalement là grâce à l'utilisation de QUIC par HTTP/3:
-
HTTP/3 a plus de chances de fonctionner plus tôt grâce aux handshakes 0-RTT de QUIC, alors que TCP Fast Open et TLS envoient généralement moins de données et rencontrent fréquemment des problèmes.
-
HTTP/3 a des handshakes beaucoup plus rapides grâce à QUIC vs TCP + TLS.
-
HTTP/3 n'existe pas dans une version non sécurisée ou non chiffrée. HTTP/2 peut être implémenté et utilisé sans HTTPS - même si c'est rare sur Internet.
-
HTTP/2 peut être négocié directement dans un handshake TLS avec l'extension ALPN, alors que HTTP/3 est sur QUIC donc nécessite une réponse d'en-tête
Alt-Svc:
pour informer le client de ce fait.