3. Démarrage de HTTP/2 (Starting HTTP/2)
Les connexions HTTP/2 sont établies via plusieurs mécanismes :
- Pour les URI "https" : TLS avec extension ALPN
- Pour les URI "http" : Mécanisme de mise à niveau HTTP
- Connaissance préalable (Prior Knowledge) : HTTP/2 direct sans négociation
3.1 Identification de version HTTP/2 (HTTP/2 Version Identification)
HTTP/2 utilise l'identifiant de protocole (Protocol Identifier) "h2" pour TLS et "h2c" pour TCP en clair.
3.2 Démarrage de HTTP/2 pour les URI "http" (Starting HTTP/2 for "http" URIs)
Les clients utilisent le mécanisme de mise à niveau HTTP (HTTP Upgrade Mechanism) avec le jeton "h2c" et le champ d'en-tête HTTP2-Settings.
3.3 Démarrage de HTTP/2 pour les URI "https" (Starting HTTP/2 for "https" URIs)
Les clients utilisent TLS avec l'extension de négociation de protocole de couche application (Application-Layer Protocol Negotiation, ALPN).
3.4 Démarrage de HTTP/2 avec connaissance préalable (Starting HTTP/2 with Prior Knowledge)
Les clients peuvent (MAY) envoyer directement des trames HTTP/2 s'il existe une connaissance préalable de la prise en charge du serveur.
3.5 Préface de connexion HTTP/2 (HTTP/2 Connection Preface)
Le client et le serveur doivent (MUST) tous deux envoyer une préface de connexion (Connection Preface) lors de l'établissement d'une connexion HTTP/2.
Préface client : PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n suivi d'une trame SETTINGS.
Préface serveur : Une trame SETTINGS.