기본 centos 7.x 버전에서 curl 이용해서 http2 테스트를 진행하려면 지원이 되지 않는다
현재 O/S 버전 :
1 2 |
[root@xinet ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) |
현재 crul 버전
1 2 3 4 |
[root@xinet ~]# curl -V curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.53.1 zlib/1.2.7 libidn/1.28 libssh2/1.8.0 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets |
curl 을 이용해서 http2 통신 테스트를 하면 지원하지 않는다고 출력
1 2 3 |
[root@xinet ~]# curl -s --http2 -w 'HTTP/2: %{time_total}\n' -o /dev/null https://www.google.com curl: option --http2: is unknown curl: try 'curl --help' or 'curl --manual' for more information |
그럼 http2 를 지원하려면 8 버전이상을 사용해야 함
curl 컴파일 하기전에 libghttp2 패키지 설치 진행
1 |
[root@xinet ~]# yum install -y openssl-devel libnghttp2-devel |
crul 다운로드 및 컴파일 진행
1 2 3 4 5 6 7 |
[root@xinet ~]# wget https://curl.se/download/curl-8.2.1.tar.gz --no-check-certificate [root@xinet ~]# tar xvfz curl-8.2.1.tar.gz [root@xinet ~]# cd curl-8.2.1 [root@xinet ~/curl-8.2.1]# ./configure --with-nghttp2 --with-ssl --prefix=/usr/local/curl |
configure 를 진행하고 나면 아래와 같이 HTTP2 enable 표시가 진행이 된다
이제 make make install 진행
1 |
[root@xinet ~/curl-8.2.1]# make && make install |
정상적으로 설치가 되었으면 기존 curl 명령어를 이름을 변경하고 새로 설치한 파일로 심벌릭 링크 진행
1 2 3 |
[root@xinet ~/curl-8.2.1]# mv /usr/bin/curl /usr/bin/curl.old [root@xinet ~/curl-8.2.1]# ln -s /usr/local/curl/bin/curl /usr/bin/curl |
버전 확인
1 2 3 4 5 |
[root@xinet ~/curl-8.2.1]# curl -V curl 8.2.1 (x86_64-pc-linux-gnu) libcurl/8.2.1 OpenSSL/1.0.2k-fips zlib/1.2.7 brotli/1.0.1 nghttp2/1.33.0 OpenLDAP/2.4.44 Release-Date: 2023-07-26 Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL UnixSockets |
이제 http2 통신 테스트를 진행해 보자
1 2 3 4 5 |
[root@xinet ~/curl-8.2.1]# curl -s --http2 -w 'HTTP/2: %{time_total}\n' -o /dev/null https://www.google.com HTTP/2: 0.342777 [root@xinet ~/curl-8.2.1]# curl -s --http2 -w 'HTTP/2: %{time_total}\n' -o /dev/null https://xinet.kr HTTP/2: 0.006685 |
정상적으로 통신 되는것을 확인 할 수 잇다
–http2 http2 통신을 진행
-w 출력 형식을 지정
%{time_total}은 전체 소요 시간
-o /dev/null 본문 출력하지 않도록 설정