Prise en charge d'HTTP/3
Salvo offre une prise en charge d'HTTP/3, qui peut être activée via la fonctionnalité quinn. HTTP/3 est basé sur le protocole QUIC et offre une latence réduite ainsi que de meilleures performances par rapport aux protocoles HTTP/1.1 et HTTP/2 traditionnels, particulièrement dans des environnements réseau instables.
Activation de la prise en charge d'HTTP/3
Pour activer la prise en charge d'HTTP/3 dans Salvo, vous devez activer la fonctionnalité quinn dans votre fichier Cargo.toml :
Cas d'utilisation d'HTTP/3
HTTP/3 est particulièrement adapté aux scénarios suivants :
- Applications sur appareils mobiles et dans des environnements réseau instables
- Applications en temps réel nécessitant une faible latence
- Scénarios impliquant le téléchargement parallèle de nombreux petits fichiers
- Applications nécessitant une migration de connexion (par exemple, basculement transparent du WiFi vers les réseaux cellulaires sans interruption de connexion)
Exemple de code
Voici un exemple simple de serveur HTTP/3 prenant en charge à la fois HTTP/3 (QUIC) et HTTPS (TCP) :
Analyse du code clé
Configuration TLS
Étant donné qu'HTTP/3 est basé sur le protocole QUIC, qui nécessite TLS 1.3 pour le chiffrement, les certificats et clés TLS doivent être configurés. Dans Salvo, nous utilisons RustlsConfig pour configurer TLS.
Combinaison des écouteurs
Ce code constitue la partie centrale de la gestion d'HTTP/3 dans Salvo. Il crée d'abord un écouteur TCP avec TLS activé (pour HTTP/1.1 et HTTP/2), puis un écouteur QUIC (pour HTTP/3). La méthode join combine ces deux écouteurs, permettant au serveur de traiter simultanément les requêtes de différents protocoles.
Exécution de l'exemple
Pour exécuter cet exemple, vous avez besoin de certificats TLS et de clés privées valides. Dans un environnement de développement, des certificats auto-signés peuvent être utilisés. Le code complet de l'exemple est disponible dans le dépôt GitHub de Salvo.
Notez que de nombreux clients ne prennent pas encore entièrement en charge HTTP/3, il est donc essentiel que ce serveur prenne en charge à la fois HTTP/3 et HTTPS.
Considérations
- HTTP/3 nécessite une prise en charge de TLS 1.3, des certificats et clés valides doivent donc être configurés.
- Les clients doivent prendre en charge le protocole HTTP/3 pour utiliser cette fonctionnalité ; sinon, ils basculeront vers HTTP/1.1 ou HTTP/2.
- Dans les environnements de production, des certificats émis par une autorité de certification de confiance doivent être utilisés plutôt que des certificats auto-signés.