HTTP/2
HTTP/2 est une évolution du protocole HTTP 1.1, il cherche essentiellement à
être plus efficace lors de l'utilisation des réseaux. La sémantique est la même, il est donc
conçu pour être compatible avec les anciens protocoles.
Limitations de HTTP 1.1
HTTP 1.1 est limité au traitement d'une requête par connexion, donc les clients utilisent généralement
plus d'une connexion pour demander des fichiers aux serveurs. Mais
cela pose un problème, car lorsqu'il y a trop de connexions TCP ouvertes,
il y a une compétition entre les clients pour utiliser les ressources du serveur, et les performances
se dégradent à mesure que de nouveaux clients se connectent.
Principales fonctionnalités
- HTTP/2 est un protocole binaire (rappelons
que HTTP 1.1 est un protocole texte).
- HTTP/2 fonctionne via TLS et ALPN.
- Il est multiplexé (vous permet d'envoyer plus
d'une requête sur une seule connexion TCP).
- Le serveur peut pousser des réponses aux clients.
- Réduit les temps d'aller-retour, permettant ainsi aux clients
de se charger plus rapidement.
HTTP/2 introduit d'autres améliorations, plus de détails : RFC7540.
HTTP/2 nécessite notre version Indy personnalisée car
il requiert le protocole ALPN.
Composants
- TsgcHTTP2Client : composant client qui prend entièrement en charge le protocole HTTP/2
(code Pascal 100% sgcWebSockets, sans bibliothèques externes).
- TsgcWebSocketHTTPServer :
composant serveur qui prend en charge intégralement le protocole HTTP/2 (sgcWebSockets
100% code Pascal, sans bibliothèques externes). Par défaut, HTTP/2 est
désactivé ; vous pouvez l'activer via la propriété HTTPOptions en définissant
Enable = true.
- TsgcWebSocketServer_HTTPAPI :
composant serveur qui prend en charge le protocole HTTP/2 (implémentation Microsoft
et nécessite Windows 2016+ ou Windows 10+).
- Serveurs DataSnap : le serveur DataSnap peut également prendre en charge le protocole HTTP/2.
APIs