http
, https
scheme을 사용한다h2
는 HTTP/2가 Transport Layer Security(TLS)를 사용하여 데이터를 주고 받는다h2c
는 HTTP/2가 평문 형태로 데이터를 주고 받는다Upgrade
헤더가 포함된 HTTP요청을 보낸다HTTP2-Settings
헤더 필드가 반드시 포함되어있어야 한다
HTTP2-Settings
필드는 connection-specific한 헤더 필드이며 HTTP/2 연결에서 사용되는 파라미터들을 포함하고 있다 GET / HTTP/1.1 to
Host: server.example.com
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
HTTP2-Settings: <base64url encoding of HTTP/2 SETTINGS payload>
서버가 HTTP/2를 지원하지 않는다면 Upgrade
가 제외된 응답을 보낸다
HTTP/1.1 200 OK
Content-Length: 243
Content-Type: text/html
...
SETTING
프레임을 포함하고 있는 preface를 전송한다 HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: h2c
[ HTTP/2 connection ...
half-closed
상태이다h2
프로토콜 identifier를 지정한다클라이언트 preface는 다음 24바이트로 시작하며 PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n
를 나타낸다
0x505249202a20485454502f322e300d0a0d0a534d0d0a0d0a