HTTP/2.0을 지원하는지 확인하는 방법 3번째로 curl 명령어가 있다. (과거 포스팅자료에서 잠시 등장한적이 있다)


윈도우를 사용하는 경우에는 curl명령어를 다운받아야한다. 이 글은 윈도우 기준으로 작성한다. (다른 OS라고 크게 다르지 않다)

    리눅스, 맥OS는 기본적으로 설치되어있다

    파이썬 아나콘다를 설치한 경우 아나콘다에 curl이 포함되어있어서 별도의 다운로드가 필요 없을수도있다.


RFC7540문서에는 HTTP/2.0을 지원하기 위한 조건에 http://, https:// 두가지 모두 지원한다고 나와있다.

하지만, 우리가 사용하는 대부분의 브라우저에서 http://, HTTP/2.0 의 조합을 지원하지 않는다.

현실적으로 HTTP/2.0을 사용하기 위해선 https://로 통신해야 한다고 생각하면된다.

https://로 통신하기 위해선 인증서가 필요하다. 그러므로 curl 명령어를 위한 인증서도 준비되어 있어야한다.



curl, 인증서는 아래 링크를 통한 사이트에서 받을 수 있다.

http://winampplugins.co.uk/curl/

해당 사이트에서 32bit or 64bit 본인에게 맞는것을 다운로드 하고 압축을 풀면 인증서와 curl이 나온다.

두 파일을 C:\Windows\System32안에 넣어주면 된다.


현재 PC에 curl이 설치되어 있는지 확인하기 위해선

    1. window + r을 눌러서 실행을 킨다

    2. cmd를 입력한다

    3. curl -V 를 입력한다 (V는 대문자이다)


다음과 같이 나오면 curl이 다운로드 된 상태이다.



이 curl의 옵션을 이용해서 우리는 HTTP/2.0 지원 여부를 확인할 수 있다.

(버전이 낮은 경우에는 이 옵션이 없을수 있으니 최신 버전으로 설치할것을 권장한다.)


curl -I --http2 URL -> 이 옵션을 통해서 확인이 가능하다.

    -I (대문자 i)는 header를 보는 옵션이다.

    --http2는 http/2.0으로 통신하기위한 옵션이다. (정확히는 header의 필드값을 추가시켜준다)

    URL부분에 우리가 목표로할 사이트의 주소를 넣어주면 된다.


http://nghttp2.org 사이트를 대상으로 위 옵션을 적용해서 실행해보면


다음과 같이 노란박스 안에 HTTP/2로 나온다.

그런데 위에 HTTP/1.1 101 Switching Protocols가 먼저 응답을 했다.


이번엔 https://nghttp2.org로 테스트를 해보면 (아까와 차이점은 http , https의 차이이다)


역시 해당 사이트는 HTTP/2.0을 지원하므로 1.1이 아닌 2.0버전으로 통신하는게 보인다.


하지만 101 스위칭 프로토콜 부분은 보이지 않는다.

이 부분에 대해선 RFC7540문서에서 다음을 참조하기 바란다.

3.2.  Starting HTTP/2 for "http" URIs

3.3.  Starting HTTP/2 for "https" URIs

+ Recent posts