Aller au contenu principal

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.