3. HTTP/2 starten (Starting HTTP/2)
HTTP/2-Verbindungen werden über mehrere Mechanismen hergestellt:
- Für "https"-URIs: TLS mit ALPN-Erweiterung
- Für "http"-URIs: HTTP-Upgrade-Mechanismus
- Vorwissen (Prior Knowledge): Direktes HTTP/2 ohne Verhandlung
3.1 HTTP/2-Versionsidentifikation (HTTP/2 Version Identification)
HTTP/2 verwendet die Protokollkennung (Protocol Identifier) "h2" für TLS und "h2c" für Klartext-TCP.
3.2 HTTP/2 für "http"-URIs starten (Starting HTTP/2 for "http" URIs)
Clients verwenden den HTTP-Upgrade-Mechanismus (HTTP Upgrade Mechanism) mit dem "h2c"-Token und dem HTTP2-Settings-Header-Feld.
3.3 HTTP/2 für "https"-URIs starten (Starting HTTP/2 for "https" URIs)
Clients verwenden TLS mit der Application-Layer Protocol Negotiation (ALPN)-Erweiterung.
3.4 HTTP/2 mit Vorwissen starten (Starting HTTP/2 with Prior Knowledge)
Clients dürfen (MAY) HTTP/2-Frames direkt senden, wenn Vorwissen über Server-Unterstützung vorhanden ist.
3.5 HTTP/2-Verbindungs-Preface (HTTP/2 Connection Preface)
Sowohl Client als auch Server müssen (MUST) beim Aufbau einer HTTP/2-Verbindung ein Verbindungs-Preface (Connection Preface) senden.
Client-Preface: PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n gefolgt von einem SETTINGS-Frame.
Server-Preface: Ein SETTINGS-Frame.