HTTP/2.0을 지원하는 웹페이지는 HTTP/1.1를 동시에 지원한다.
해당 사이트가 HTTP/2.0을 지원하는지 모르기 때문에 맨 처음 connection이 이루어지면 1.1버전으로 통신을 하고
HEAD를 보낼때 "너 HTTP/2.0버전을 지원하니?"라고 물어본다. (빨간 박스 부분이 물어보는 부분이다)
아래 표는 'http' URL을 사용하는 사이트의 경우 HTTP/2.0을 시작하기 위한 예시를 나타낸다(RFC 7540참고)
GET / HTTP/1.1 Host: server.example.com Connection: Upgrade, HTTP2-Settings Upgrade: h2c HTTP2-Settings: <base64url encoding of HTTP/2 SETTINGS payload> |
아래 스크린샷은 curl 명령어를 통해서 nghttp2.org라는 사이트와 통신하는것을 캡처한것이다.
(106.186.112.116은 nghttp2.org사이트의 ip주소이다)
만약 서버가 HTTP/2.0을 지원하지 않으면 이 요청(빨간색박스)을 무시하고 기존 1.1버전의 사이트를 200 OK로 내려준다.
하지만 이 경우는 서버가 HTTP/2.0을 지원하므로 HTTP/1.1 101 Switching Protocols 이라는 답장을 했다. (초록색 박스)
(여기서 HTTP/1.1 101 Switching Protocols은 "지금 HTTP/1.1을 쓰고있는데 HTTP/2.0으로 바꾸자"라고 답을해준거라 생각해도 된다.)
그 후 프로토콜은 HTTP/2.0으로 상승해서 통신하는 부분을 볼 수 있다. (주황색 박스)
*다음과 같이 CMD에서 curl명령어를 통해 101 스위칭 프로토콜이 도착하고, HTTP/2.0으로 변경된걸 확인 할 수 있다.
'HTTP2.0' 카테고리의 다른 글
#1 http2 지원여부 확인 (HTTP/2 and SPDY indicator) (0) | 2016.10.09 |
---|---|
#2. HTTP/1.1에서 HTTP/2.0 (https인 경우) (0) | 2016.09.26 |
#1. HTTP/1.1에서 HTTP/2.0 (https인 경우) (0) | 2016.09.26 |
HPACK이 Huffman coding을 사용하는 이유 (0) | 2016.09.23 |
HPACK에서 사용하는 Huffman coding (0) | 2016.09.14 |